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文件 -->需要变成正常的代码浏览器才可以解读,
这时需要用到[email protected] //这里用的是vue1.0版本
cnpm install [email protected] --save-dev
解析html,css,js代码
cnpm install vue-html-loader --save-dev
vue-html-loader,css-loader vue-style-loader,[email protected]
babel所需要的插件:
babel-loader,babel-core,babel-plugin-transform-runtime,babel-preset-es2015,babel-runtime
下载最最核心的vue
cnpm install [email protected] --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里面去改的