# 安装 npm install vue-router # 使用 import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter) export default new Router({ routes: [ { path: '/', component: Index }, { path: '/about', component: About }, { path: '/login', component: Login } ] })
# 路由 { path: 'info/:name', ... } # 参数配置 <router-link to="/info/张三">张三</router-link> # 获取 {{$route.params.name}} // 张三
# 路由 { path: 'info', ... } # 参数配置 <router-link to="/info?name=李四&age=23">关于</router-link> # 获取 {{$route.params.name}} // 李四 23
在路由中嵌套children
,实现子路由配置, 子路由必须配置专属的router-view
,用于页面渲染。javascript
{ path: '/profile', component: Profile, children: [ { path: 'info/:name', components: { asideContent: Infos } }, { path: 'star', components: { asideContent: Star } } ] }
路由配置:vue
{ path: '/logout/:name', name: 'logout', // 在手动跳转的路由中使用 component: Logout }
模板配置:java
# 这里click方法不能写在a标签上面 <li @click="logout"> <a href="javascript:;">手动退出</a> </li>
控制器配置:vue-router
<script> export default { methods: { logout() { // 手动设置跳转路径 // this.$router.push('logout'); // 传参写法 this.$router.push({name: 'logout', params: {name: '张三'}}) } } }; </script>
命名视图多用在左菜单右内容的位置,好比网站的我的中心npm
路由配置:ide
{ path: '/profile', component: Profile, children: [ { path: 'info/:name', components: { # 这里配置视图展现 // default: Infos # 若是只有一个视窗,这里能够设置默认值 asideContent: Infos } } ] }
模板配置:网站
<template> <div class="row"> <div class="col-md-9"> # 命名视图展现位置 <router-view name="asideContent"></router-view> </div> <div class="col-md-3"> <ul class="list-group"> <li class="list-group-item"> <router-link to="/profile/info/张三">我的信息</router-link> </li> <li class="list-group-item"> <router-link to="/profile/star">个人积分</router-link> </li> <li class="list-group-item"> <router-link to="/info">我的信息</router-link> </li> <li class="list-group-item"> <router-link to="/info">我的信息</router-link> </li> <li class="list-group-item"> <router-link to="/info">我的信息</router-link> </li> </ul> </div> </div> </template>