windows下vue-cli及webpack 构建网站及 路由vue-router的使用

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

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>
          </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 显示的页面变成:

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

现在我们加入的bootstrap导航代码已经可以显示出来了,但是有点丑,是因为我们还没把bootstrap的CSS文件加载过来,接下来我们就是要导入CSS文件和JS文件了。

3、下载Bootstrap文件包,然后把css、js、fonts三个文件夹复制到vue项目的src\assets目录下。

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

4、让vue支持jQuery需要先安装jquery插件,通过cmd命令进入项目文件夹,然后运行 cnpm install jquery --save-dev 安装插件

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

接着分别运行

[html] view plain copy
  1. cnpm install style-loader --save-dev  
  2. cnpm install css-loader --save-dev  
  3. cnpm install file-loader --save-dev  
安装支持css的插件。

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

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


如果提示错误

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

说明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

就可以看到导航的效果出来了

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

1
 
1


2、在src\components文件夹下面新建两个组件,分别为 header.vue、footer.vue,打开header.vue文件粘贴下面的代码作为网站的头部。

[html] view plain copy
  1. <template>  
  2.     <!-- Fixed navbar -->  
  3.     <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">  
  4.       <div class="container">  
  5.         <div class="navbar-header">  
  6.           <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">  
  7.             <span class="sr-only">Toggle navigation</span>  
  8.             <span class="icon-bar"></span>  
  9.             <span class="icon-bar"></span>  
  10.             <span class="icon-bar"></span>  
  11.           </button>  
  12.           <a class="navbar-brand" href="#">{{ msg }}</a>  
  13.         </div>  
  14.         <div id="navbar" class="navbar-collapse collapse">  
  15.           <ul class="nav navbar-nav">  
  16.             <li class="active"><a href="/">首页</a></li>  
  17.             <li><a href="/list">文章</a></li>  
  18.             <li class="dropdown">  
  19.               <a href="#" class="dropdown-toggle" data-toggle="dropdown">会员 <span class="caret"></span></a>  
  20.               <ul class="dropdown-menu" role="menu">  
  21.                 <li><a href="/user/login">登录</a></li>  
  22.                 <li><a href="/user/register">注册</a></li>  
  23.               </ul>  
  24.             </li>  
  25.           </ul>  
  26.         </div><!--/.nav-collapse -->  
  27.       </div>  
  28.     </nav>  
  29. </template>  
  30. <script>  
  31. export default {  
  32.   name: 'header',  
  33.   data () {  
  34.     return {  
  35.       msg: 'LOGO'  
  36.     }  
  37.   }  
  38. }  
  39. </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>

可以看到代码中我们引入了新创建的两个组件,并且加载到模板当中了,我们保存之后启动一下项目看看。

windows下vue-cli及webpack 构建网站及 路由vue-router的使用







1、本篇文章是建立在以上三篇文章的基础上的。

2、安装 vue-router 插件,运行cmd进入到项目目录下面,运行以下命令:

[html] view plain copy
  1. cnpm install vue-router --save-dev  

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

3、在src文件夹下面新建一个文件夹page用于存放模板文件,然后分别在这个文件夹下面新建 index.vue、list.vue两个文件,然后打开index.vue粘贴以下代码:

[html] view plain copy
  1. <template>  
  2.   
  3.   <div class="jumbotron">  
  4.         <h1>这里是首页!</h1>  
  5.   </div>  
  6.   
  7. </template>  

保存之后再打开list.vue粘贴以下代码:

[html] view plain copy
  1. <template>  
  2.   
  3.    <div class="list-group">  
  4.      <a href="#" class="list-group-item active">  
  5.        这里是列表页  
  6.      </a>  
  7.      <a href="#" class="list-group-item">Dapibus ac facilisis in</a>  
  8.      <a href="#" class="list-group-item">Morbi leo risus</a>  
  9.      <a href="#" class="list-group-item">Porta ac consectetur ac</a>  
  10.      <a href="#" class="list-group-item">Vestibulum at eros</a>  
  11.    </div>  
  12.   
  13. </template>  

好了,两个页面的内容都准备好了,接下来我们修改入口文件app.vue的内容吧


4、打开src文件夹下面的app.vue文件,修改代码为

[html] view plain copy
  1. <template>  
  2.   <div>  
  3.   <HtmlHeader></HtmlHeader>  
  4.       <router-view  
  5.         class="view"  
  6.         keep-alive  
  7.         transition  
  8.         transition-mode="out-in">  
  9.       </router-view>  
  10. <HtmlFooter></HtmlFooter><span style="white-space:pre"> </span>    
  11.     </div>  
  12. <span style="white-space:pre">  </span>  
  13. </template>  
  14.   
  15.   
  16. <script>  
  17. import HtmlHeader from './components/header'  
  18. import HtmlFooter from './components/footer'  
  19. export default {  
  20.   components: {  
  21.     HtmlHeader,  
  22.     HtmlFooter  
  23.   }  
  24. }  
  25. </script>  

这里用了 router-view 来把刚才新建的两个页面加载到这里来


修改了入口文件接下来就是要进行路由规则的配置了。


5、在src文件夹下面新建一个文件夹config用来存放路由配置,在config文件夹下面新建routes.js文件并打开,然后粘贴以下代码并保存:

[html] view plain copy
  1. //加载模板文件  
  2. import index from '../page/index'  
  3. import list from '../page/list'  
  4. //路由规则设置  
  5. export default [  
  6.     {  
  7.         path: '/',  
  8.         component: index  
  9.     },  
  10.     {  
  11.         path: '/list',  
  12.         component: list  
  13.     }  
  14. ]  

现在路由配置文件也已经配置好了,我们接下来就是要打开sec文件夹下面的main.js文件设置路由使用了


6、打开main.js 文件,在头部加入以下代码

[html] view plain copy
  1. // 引用路由插件  
  2. import VueRouter from 'vue-router'  
  3. // 试用路由插件  
  4. Vue.use(VueRouter)  
  5. //引入路由配置文件  
  6. import routes from './config/routes'  
  7. // 使用配置文件规则  
  8. const router = new VueRouter({  
  9.   mode: 'history',  
  10.   base: __dirname,  
  11.   routes: routes })  

这个是引入路由插件并且使用,然后加载路由规则

接着把

[html] view plain copy
  1. new Vue({  
  2.   el: '#app',  
  3.   template: '<App/>',  
  4.   components: { App }  
  5. })  

修改为

[html] view plain copy
  1. const app = new Vue({  
  2.       router: router,  
  3.       render: h => h(App)  
  4. }).$mount('#app')  

windows下vue-cli及webpack 构建网站及 路由vue-router的使用

设置完之后整个页面代码如图


7、加载开始运行 npm run dev 查看效果吧,打开http://localhost:8080  和http://localhost:8080/list  就可以看到不同的效果了