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

vue


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

现在我们加入的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

  1. cnpm install style-loader --save-dev  

  2. cnpm install css-loader --save-dev  

  3. 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

  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>


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







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

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

[html] view

plain copy

  1. cnpm install vue-router --save-dev  



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')  



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


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

以上是 windows下vue-cli及webpack 构建网站及 路由vue-router的使用 的全部内容, 来源链接: utcz.com/z/375779.html

回到顶部