- $
- 路由是:/path/:type真正路径是:/path/list
- path匹配路径: /path/list
- fullPath匹配路由: /path/:type
- 路由元信息 .meta
const router = new VueRouter({
routes: [
{
path: '/foo',
component: Foo,
children: [
{
path: 'bar',
component: Bar,
// a meta field
meta: { requiresAuth: true ,keepAlive:true}//1.权限 2.内存缓存,单页面切换
}
]
}
]
})
先理解什么是路由记录 : 路由记录就是 routes
配置数组中的对象副本 (还有在 children
数组)。
上方代码中的路由记录见下方:
//一级路由
{
path: '/foo',
component: Foo,
children: [
{
path: 'bar',
component: Bar,
// a meta field
meta: { requiresAuth: true ,keepAlive:true}//1.权限 2.内存缓存,单页面切换
}
]
}
//一级路由的子路由
{ path: 'bar',component: Bar,meta: { requiresAuth: true ,keepAlive:true } }
//两者都是 路由记录
- 定义路由的时候可以配置
meta
字段 - 根据上面的路由配置,
/foo/bar
这个 URL 将会匹配父路由记录以及子路由记录 - 一个路由匹配到的所有路由记录会暴露为
$route
对象 (还有在导航守卫中的路由对象) 的$
数组。 - 检查路由记录中的
meta
字段 ,我们需要遍历$
- $
- 一个数组,包含当前路由的所有嵌套路径片段的路由记录
- 一个路由匹配到的所有路由记录会暴露为
$route
对象 (还有在导航守卫中的路由对象) 的$
数组
- 路由元信息 .meta $ 搭配路由守卫 进行验证
((to, from, next) => {
if ((record => )) {
// this route requires auth, check if logged in
// if not, redirect to login page.
if (!()) {
next({
path: '/login',
query: { redirect: }
})
} else {
next()
}
} else {
next() // 确保一定要调用 next()
}
})