目录
简介:
Vue中的路由就是.SPA(single page application 单页应用程序) 的路径管理器。
vue-router是Vue.js官方的路由插件,用于构建单页面应用。vue的单页面应用是基于路由和组件的,设定访问路径,并将路径和组件映射起来。在vue-router单页面应用中,路径之间的切换,就是组件的切换。路由模块的本质就是建立起url和页面之间的映射关系
路由本质上来说就是一种对应关系,比如说我们在浏览器中输入不同的 url 地址,我们就能访问不同的资源,那么这 url 地址与资源之间的对应关系,就是路由。
一、自定义路由
<!--导入路由的js库-->
<scriptsrc="assets/vue-router.min-2.7.0.js"></script>
1.2、定义模板
1.2.1显示用户列表的模板
<!-- 显示用户列表的模板(网页)-->
<template id="template01">
<div>
<h1>这是一个用户列表</h1>
<p>
这是一个表格,你需要点想象力
</p>
</div>
</template>
1.2.2添加用户的模板
<!-- 添加用户的模板(网页) -->
<template id="template02">
<div>
<h1>这是一个添加用户的页面</h1>
</div>
</template>
1.3、创建router对象
var pageUserList = {
template: '#template01'
}
var pageUserAdd = {
template: '#template02'
}//创建路由对象
var router = new VueRouter({
routes: [
{path: '/user_list', component: pageUserList},
{path: '/user_add', component: pageUserAdd}
]
});
1.4、在vue中通过router使用路由
vue-router:
vue-router是vue的一个插件,专门用来实现SPA应用。SPA也就是单页Web应用,特点是:整个应
用只有一个完整的页面,点击页面中的导航链接不会刷新页面,只会做页面的局部更新,数据需要
通过ajax请求获取
1.5、完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--导入vue的js库-->
<script src="assets/vue.min-v2.5.16.js"></script>
<!--导入路由的js库-->
<script src="assets/vue-router.min-2.7.0.js"></script>
</head>
<body>
<!-- 显示用户列表的模板(网页)-->
<template id="template01">
<div>
<h1>这是一个用户列表</h1>
<p>
这是一个表格,你需要点想象力
</p>
</div>
</template>
<!-- 添加用户的模板(网页) -->
<template id="template02">
<div>
<h1>这是一个添加用户的页面</h1>
</div>
</template>
<div id="app">
<router-link to="user_list">用户列表</router-link>
<router-link to="user_add">用户添加</router-link>
<!-- 用于显示跳转内容的容器 -->
<router-view></router-view>
</div>
<script>
//将用户列表模板注册到vue
Vue.component('hello1', {
template: '#template01'
});
//将用户添加模板注册到Vue
Vue.component('hello2', {
template: "#template02"
});
var pageUserList = {
template: '#template01'
}
var pageUserAdd = {
template: '#template02'
}
//创建路由对象
var router = new VueRouter({
routes: [
{path: '/user_list', component: pageUserList},
{path: '/user_add', component: pageUserAdd}
]
});
new Vue({
el: '#app',
router: router
})
</script>
</body>
</html>
效果点击实现: