路由守卫分3种类型:
1.全局前置守卫(在入口文件写入全局路由守卫)
router.beforeEach((to, from, next) => {
// ...
})
2.路由独享的守卫
const router = new VueRouter({
routes: [
{
path: '/foo',
component: Foo,
beforeEnter: (to, from, next) => {
// ...
}
}
]
})
3.组件内的守卫(在vue单文件组件中写,beforeRouteEnter也算是一个生命周期钩子,和上面的不一样的是这个可以拿到vue实例)
beforeRouteEnter (to, from, next) {
next(vm => {
// 通过 `vm` 访问vue组件实例
})
}