路由元信息
定义路由的时候可以配置 meta
字段
通过 meta
定义要验证的路由
const router = new Router({
routes: [
{
path: '/user',
component: User,
children: [
{
path: '',
name: 'user',
component: Profile,
meta: { requiresAuth: true }
},
{
path: 'cart',
name: 'user-cart',
component: Cart,
meta: { requiresAuth: true }
}
]
},
{
path:'*'
name:"NotFound",
component:NotFound
}
]
})
const isLogin = true;
router.beforeEach((to, from, next) => {
NProgress.start()
if (to.meta.requiresAuth && !isLogin) {
next({
name: 'login',
})
} else {
next()
}
})
或者
const router = new Router({
routes: [
{
path: '/user',
component: User,
meta: { requiresAuth: true }
children: [
{
path: '',
name: 'user',
component: Profile
},
{
path: 'cart',
name: 'user-cart',
component: Cart
}
]
}
]
})
const isLogin = true;
router.beforeEach((to, from, next) => {
NProgress.start()
if (to.matched.some(record => record.meta.requiresAuth) && !isLogin) {
next({
name: 'login',
})
} else {
next()
}
})