windows下vue-cli及webpack 构建网站及 路由vue-router的使用
2017-05-18 16:35
1466 查看
1、先安装好vue-cli,如果还没有安装好的可以参考:《windows下vue-cli及webpack 构建网站(一)环境安装》
2、安装好之后Vue的欢迎界面,我们要做个例子导入bootstrap的样式,就先去复制一份bootstrap的导航样式过来替换掉Vue的欢迎页面吧,打开Src文件夹下面的components组件目录,然后打开 Hello.vue文件,把
<h1>{{ msg }}</h1> <h2>Essential Links</h2> <ul> <li><a href="https://vuejs.org" target="_blank">Core Docs</a></li> <li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li> <li><a href="https://gitter.im/vuejs/vue" target="_blank">Gitter Chat</a></li> <li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li> <br> <li><a href="http://vuejs-templates.github.io/webpack/" target="_blank">Docs for This Template</a></li> </ul> <h2>Ecosystem</h2> <ul> <li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li> <li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li> <li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li> <li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li> </ul> </div> </template>
内容改成
<template> <nav class="navbar navbar-default" role="navigation"> <div class="container-fluid"> <!-- Brand and toggle get grouped for better mobile display --> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">{{ msg }}</a> </div> <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li class="active"><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li class="divider"></li> <li><a href="#">Separated link</a></li> <li class="divider"></li> <li><a href="#">One more separated link</a></li> </ul> 4000 </li> </ul> <form class="navbar-form navbar-left" role="search"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <ul class="nav navbar-nav navbar-right"> <li><a href="#">Link</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <span class="caret"></span></a> <ul class="dropdown-menu" role="menu"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </li> </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> </template>
这时候运行vue 显示的页面变成:
现在我们加入的bootstrap导航代码已经可以显示出来了,但是有点丑,是因为我们还没把bootstrap的CSS文件加载过来,接下来我们就是要导入CSS文件和JS文件了。
3、下载Bootstrap文件包,然后把css、js、fonts三个文件夹复制到vue项目的src\assets目录下。
4、让vue支持jQuery需要先安装jquery插件,通过cmd命令进入项目文件夹,然后运行 cnpm install jquery --save-dev 安装插件
接着分别运行
[html] view
plain copy
cnpm install style-loader --save-dev
cnpm install css-loader --save-dev
cnpm install file-loader --save-dev
安装支持css的插件。
5、修改build文件夹下面的webpack.base.conf.js文件,让其支持外部的css和js,首先打开文件后在头部加入:
var webpack = require('webpack')
然后在
module.exports = { entry: { app: './src/main.js' },
后面加
plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "windows.jQuery": "jquery" }) ],
把
alias: { 'vue$': 'vue/dist/vue.common.js', 'src': path.resolve(__dirname, '../src'), 'assets': path.resolve(__dirname, '../src/assets'), 'components': path.resolve(__dirname, '../src/components') }
改成
alias: { 'vue$': 'vue/dist/vue.common.js', 'src': path.resolve(__dirname, '../src'), 'assets': path.resolve(__dirname, '../src/assets'), 'components': path.resolve(__dirname, '../src/components'), jquery: "jquery/src/jquery" }
保存文件
6、接着修改 src文件夹下面的main.js文件,打开文件之后在顶部加入
import './assets/css/bootstrap.min.css' import './assets/js/bootstrap.min'
接着保存之后重启一下服务 npm run dev
如果提示错误
说明bootstrap.js文件格式不匹配不能通过webpack的格式检查,这样我们就需要在webpack的配置文件里面把js文件设置成不检查格式,打开build文件夹下的webpack.base.conf.js文件,找到 preLoaders 下面的
{ test: /\.js$/, loader: 'eslint', include: projectRoot, exclude: /node_modules/ }
代码,修改成
{ test: /\.js$/, loader: 'eslint', include: projectRoot, exclude: [/node_modules/,/js/] }
接着保存之后运行npm run dev
就可以看到导航的效果出来了
顶1
踩1
2、在src\components文件夹下面新建两个组件,分别为 header.vue、footer.vue,打开header.vue文件粘贴下面的代码作为网站的头部。
[html] view
plain copy
<template>
<!-- Fixed navbar -->
<nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">{{ msg }}</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="/">首页</a></li>
<li><a href="/list">文章</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">会员 <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="/user/login">登录</a></li>
<li><a href="/user/register">注册</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
</template>
<script>
export default {
name: 'header',
data () {
return {
msg: 'LOGO'
}
}
}
</script>
打开footer.vue文件,粘贴以下代码作为网站底部:
<template> <div class="blog-footer"> <p>版权所有 盗版必究.</p> <p> <a href="#">Back to top</a> </p> </div> </template>
保存
3、打开src文件夹下面的app.vue文件,修改模板代码为
<template> <div id="app"> <HtmlHeader></HtmlHeader> <div class="jumbotron"> <h1>hello word!</h1> </div> <HtmlFooter></HtmlFooter> </div> </template> <script> import HtmlHeader from './components/header' import HtmlFooter from './components/footer' export default { components: { HtmlHeader, HtmlFooter } } </script>
可以看到代码中我们引入了新创建的两个组件,并且加载到模板当中了,我们保存之后启动一下项目看看。
1、本篇文章是建立在以上三篇文章的基础上的。
2、安装 vue-router 插件,运行cmd进入到项目目录下面,运行以下命令:
[html] view
plain copy
cnpm install vue-router --save-dev
3、在src文件夹下面新建一个文件夹page用于存放模板文件,然后分别在这个文件夹下面新建 index.vue、list.vue两个文件,然后打开index.vue粘贴以下代码:
[html] view
plain copy
<template>
<div class="jumbotron">
<h1>这里是首页!</h1>
</div>
</template>
保存之后再打开list.vue粘贴以下代码:
[html] view
plain copy
<template>
<div class="list-group">
<a href="#" class="list-group-item active">
这里是列表页
</a>
<a href="#" class="list-group-item">Dapibus ac facilisis in</a>
<a href="#" class="list-group-item">Morbi leo risus</a>
<a href="#" class="list-group-item">Porta ac consectetur ac</a>
<a href="#" class="list-group-item">Vestibulum at eros</a>
</div>
</template>
好了,两个页面的内容都准备好了,接下来我们修改入口文件app.vue的内容吧
4、打开src文件夹下面的app.vue文件,修改代码为
[html] view
plain copy
<template>
<div>
<HtmlHeader></HtmlHeader>
<router-view
class="view"
keep-alive
transition
transition-mode="out-in">
</router-view>
<HtmlFooter></HtmlFooter><span style="white-space:pre"> </span>
</div>
<span style="white-space:pre"> </span>
</template>
<script>
import HtmlHeader from './components/header'
import HtmlFooter from './components/footer'
export default {
components: {
HtmlHeader,
HtmlFooter
}
}
</script>
这里用了 router-view 来把刚才新建的两个页面加载到这里来
修改了入口文件接下来就是要进行路由规则的配置了。
5、在src文件夹下面新建一个文件夹config用来存放路由配置,在config文件夹下面新建routes.js文件并打开,然后粘贴以下代码并保存:
[html] view
plain copy
//加载模板文件
import index from '../page/index'
import list from '../page/list'
//路由规则设置
export default [
{
path: '/',
component: index
},
{
path: '/list',
component: list
}
]
现在路由配置文件也已经配置好了,我们接下来就是要打开sec文件夹下面的main.js文件设置路由使用了
6、打开main.js 文件,在头部加入以下代码
[html] view
plain copy
// 引用路由插件
import VueRouter from 'vue-router'
// 试用路由插件
Vue.use(VueRouter)
//引入路由配置文件
import routes from './config/routes'
// 使用配置文件规则
const router = new VueRouter({
mode: 'history',
base: __dirname,
routes: routes })
这个是引入路由插件并且使用,然后加载路由规则
接着把
[html] view
plain copy
new Vue({
el: '#app',
template: '<App/>',
components: { App }
})
修改为
[html] view
plain copy
const app = new Vue({
router: router,
render: h => h(App)
}).$mount('#app')
设置完之后整个页面代码如图
7、加载开始运行 npm run dev 查看效果吧,打开http://localhost:8080 和http://localhost:8080/list 就可以看到不同的效果了
相关文章推荐
- 详解windows下vue-cli及webpack 构建网站(四) 路由vue-router的使用
- windows下vue-cli及webpack 构建网站(四) 路由vue-router的使用
- 详解windows下vue-cli及webpack 构建网站(三)使用组件
- 详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
- windows下vue-cli及webpack 构建网站(一)环境安装
- windows下vue-cli及webpack 构建网站(一)环境安装
- windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
- windows下vue-cli及webpack 构建网站(三)使用组件
- windows/mac 使用webpack构建vue项目
- vue2.0+vue-cli+webpack+vue-router中路由设定
- 手把手教你用vue-cli、webpack、vue-router、vue-resource构建单页应用(SPA)
- 使用webpack构建vue-cli项目,写scss脚本语言报错
- vuex在vue-cli和webpack构建的项目中的简单使用
- Vue.js结合vue-router和webpack编写单页路由项目
- Vue-cli+router+webpack
- wenda1.1 使用vue-cli webpack
- vue-cli+webpack在生成的项目中使用bootstrap实例代码
- Vue.js结合vue-router和webpack编写单页路由项目
- webpack vuejs 和 vue-router 如何使用?
- 使用Vue-cli下载一个以webpack打包的vue模板