组件内导航守卫:
beforeRouterEnter: 在页面还未进入的时候。这个时候vue实力还未创建。因此访问不到this。
beforeRouterUpdate:当前页面组件被复用的时候,页面的路径发生了改变,会触发此方法。在这个时候是可以访问到this的
beforeRouterLeave:离开当前路由的时候,即要离开当前页面的时候,这个时候是可以访问到this的
全局导航守卫
router.beforeEach: 全局前置守卫进入路由之前触发
**router.beforeResolve:**全局解析守卫在beforeRouteEnter调用之后调用
router.beforeAfter: 全局后置钩子进入路由后触发
路由独享守卫
const router = new VueRouter({
routes: [
{
path: '/foo',
component: Foo,
beforeEnter: (to, from, next) => {
// 参数用法什么的都一样,调用顺序在全局前置守卫后面,所以不会被全局守卫覆盖
// ...
}
}
]
})