导航钩子就是路由的生命周期函数,主要包括全局和局部。
全局钩子函数
beforeEach:路由切换开始调用,类似路由守卫
router.beforeEach((to,from,next)=>{
//to:即将进入目标对象
//form:当前导航要离开的导航对象
//next:是一个函数,调用resolve
})
对于登录的设置案例:
router.beforeEach((to, from, next) => {
if (to.name !== 'Login' && !isAuthenticated) next({ name: 'Login' })
else next()
})
局部的钩子函数
局部到单个路由:
- beforeEnter
组件的钩子函数:
- beforeRouterEnter
- beforeRouterUpdate
- beforeRouterLeave