vue-router的使用:
vue—>适合在单页面的应用,即适合SPA开发
vue-resource: 交互
vue-router: 路由
下载:因为这里用的是vue1.0,所以下载vue-router0.7.13版本,后面会继续讲解vue2.0
查看版本信息:bower info 包名
下载:bower install vue-router
下面讲解vue1.0中vue-router使用的步骤:
主页:/home
新闻:/news
html代码:
<li><a v-link="{path:'/home'}">主页</a></li> // 页面跳转链接,这里并不用href
<router-view></router-view> //显示内容
js代码:
<script type="text/javascript">
//1、准备一个根组件
var App=Vue.extend();
//2、准备Home、news的组件
var Home=Vue.extend({
template:'<h3>我是主页</h3>'
});
var News=Vue.extend({
template:'<h3>我是新闻</h3>'
});
//3、准备路由
var router=new VueRouter();
//4、关联
router.map({
'home':{
component:Home
},
'news':{
component:News
}
});
//5、启动路由
router.start(App,'#box');
//6、跳转
router.redirect({
'/':'home'
});
</script>
--------------------------------------------------------
路由嵌套(多个路由的使用)
html代码:
<div id="box">
<ul>
<li><a v-link="{path:'/home'}">主页</a></li>
<li><a v-link="{path:'/news'}">新闻</a></li>
</ul>
<div>
<router-view></router-view>
</div>
</div>
<template id="home">
<h3>我是主页</h3>
<ul>
<li><a v-link="{path:'/home/login'}">登录</a></li>
<li><a v-link="{path:'/home/register'}">注册</a></li>
</ul>
<div>
<router-view></router-view>
</div>
</template>
<template id="news">
<h3>我是新闻</h3>
</template>
js代码:
<script type="text/javascript">
window.onload=function(){
//1、准备一个根组件
var App=Vue.extend();
//2、准备Home、news的组件
var Home=Vue.extend({
template:'#home'
});
var News=Vue.extend({
template:'#news'
});
//3、准备路由
var router=new VueRouter();
//4、关联
router.map({
'home':{
component:Home,
subRoutes:{
'login':{
component:{
template:'<strong>这是登录页面</strong>'
}
},
'register':{
component:{
template:'<strong>这是注册页面</strong>'
}
}
}
},
'news':{
component:News
}
});
//5、启动路由
router.start(App,'#box');
//6、跳转
router.redirect({
'/':'home'
});
}
</script>
---------------------------------------------------------------------------------------
获取路由的其他信息:(比如在登录时,在路由上显示是谁登录)
{{$route.params |json}} //获取传过来的参数,如依靠后台数据库id来显示信息
{{$route.path}} //显示当前路径
{{$route.query |json}} //显示当前查询的信息
---------------------------------------------------------------------------------------
示例1:vue-router的综合应用
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>Document</title>
6 <script src="bower_components/vue/dist/vue.js"></script>
7 <script src="bower_components/vue-router/dist/vue-router.js"></script>
8 <style>
9 .v-link-active{ 10 font-size: 20px; 11 color: #f60; 12 } 13 </style>
14 </head>
15 <body>
16 <div id="box">
17 <ul>
18 <li>
19 <a v-link="{path:'/home'}">主页</a>
20 </li>
21 <li>
22 <a v-link="{path:'/news'}">新闻</a>
23 </li>
24 </ul>
25 <div>
26 <router-view></router-view>
27 </div>
28 </div>
29
30 <template id="home">
31 <h3>我是主页</h3>
32 <div>
33 <a v-link="{path:'/home/login/yufan'}">登录</a>
34 <a v-link="{path:'/home/reg/yfstrive'}">注册</a>
35 </div>
36 <div>
37 <router-view></router-view>
38 </div>
39 </template>
40 <template id="news">
41 <h3>我是新闻</h3>
42 <div>
43 <a v-link="{path:'/news/detail/001'}">新闻001</a>
44 <a v-link="{path:'/news/detail/002'}">新闻002</a>
45 </div>
46 <router-view></router-view>
47 </template>
48 <template id="detail">
49 {{$route.params | json}} 50 <br>
51 {{$route.path}} 52 <br>
53 {{$route.query | json}} 54 </template>
55 <script>
56 //1. 准备一个根组件
57 var App=Vue.extend(); 58
59 //2. Home News组件都准备
60 var Home=Vue.extend({ 61 template:'#home'
62 }); 63
64 var News=Vue.extend({ 65 template:'#news'
66 }); 67
68 var Detail=Vue.extend({ 69 template:'#detail'
70 }); 71
72 //3. 准备路由
73 var router=new VueRouter(); 74
75 //4. 关联
76 router.map({ 77 'home':{ 78 component:Home, 79 subRoutes:{ 80 'login/:name':{ 81 component:{ 82 template:'<strong>我是登录信息 {{$route.params | json}}</strong>'
83 } 84 }, 85 'reg':{ 86 component:{ 87 template:'<strong>我是注册信息</strong>'
88 } 89 } 90 } 91 }, 92 'news':{ 93 component:News, 94 subRoutes:{ 95 '/detail/:id':{ 96 component:Detail 97 } 98 } 99 } 100 }); 101
102 //5. 启动路由
103 router.start(App,'#box'); 104
105 //6. 跳转
106 router.redirect({ 107 '/':'home'
108 }); 109 </script>
110 </body>
111 </html>
vue-loader的介绍:
webpack:模块加载器,一切东西都是模块,最后打包到一块
vue-loader:基于webpack,文件后缀名为.vue
.vue文件:放置的是vue组件代码,由三部分组成
<template>
html代码
</template>
<style>
css代码
</style>
<script>
js代码 (平时的代码,ES6),由于ES6浏览器支持不太好,
所以可能会用到babel-router来编译ES6
</script>
--------------------------------------------------
学习:手动配置webpack+vue-loader
构建webpack 的简单目录结构(详细请见vue-router文件夹)
|-index.html
|-main.js 文件的入口
|-App.vue vue文件
|-package.json 工程文件(项目依赖,名称,配置)——>可由npm init --yes 生成
|-webpack.config.js webpack的配置文件
webpack的准备工作:
cnpm install webpack --save-dev
cnpm install webpack-dev-server --save-dev
解析App.vue文件 -->需要变成正常的代码浏览器才可以解读,
这时需要用到vue-loader@8.5.4 //这里用的是vue1.0版本
cnpm install vue-loader@8.5.4 --save-dev
解析html,css,js代码
cnpm install vue-html-loader --save-dev
vue-html-loader,css-loader vue-style-loader,vue-hot-reload-api@1.3.2
babel所需要的插件:
babel-loader,babel-core,babel-plugin-transform-runtime,babel-preset-es2015,babel-runtime
下载最最核心的vue
cnpm install vue@1.0.28 --save
运行:npm run dev
-----------------------------------------------
ES6:模块化开发
导出模块:export default{}
导入模块:import 模块名 from 地址
-----------------------------------------------------
脚手架vue-cli版本介绍:
vue-cli --> vue的脚手架(帮你提供好了基本的项目结构)
webpack#1.0/2.0 -->不用Eslint检测
webpack-simple#1.0/2.0 --->没有代码检查和单元测试
------------------------------------------------------
webpack基本的使用流程
1.npm install vue-cli -g 安装vue命令环境
如何验证已经安装?---输入vue--version
2.生成项目模板
vue init <模板名> 本地的项目名称
3.进入到生成目录里面
cd xxx
npm install
4.npm run dev
改端口的---端口在config/index.js里面去改的