路由守卫
路由守卫也称导航守卫,守卫分三种守卫(全局守卫[3])(路由独享守卫[1])(组件的守卫[3])
钩子函数写法
beforeEach:(to,from.next)=>{
console.log()
next() // 回调函数
}
to目标路由对象
from从哪个路由跳转过来的对象
next 函数 交给下一个路由守卫进行执行,如果回调函数里面添加next参数 需要手动调用next函数,如果不加next参数,就可以直接触发下一个钩子函数,next可以实现终止路由跳转
next是跳转到下一个路由的关键
next(vm=>{
console.log("aftereach后置守卫执行完之后会把组件实例this传进beforeRouteEnter的next回调里面,参数就是this组件对象",vm)
})
路由守卫有七个钩子函数分别是
一、路由独享守卫
路由独享守卫写在匹配规则里面beforeEnter在进入路由之前触发,一般不使用
二、全局路由守卫
全局守卫在路由器文件下进行定义
beforeEach全局的前置守卫
beforeResolve全局的解析守卫
afterEach全局的后置守卫
三、组件路由守卫
组件守卫需要写在路由组件文件里面相当与定义在一个路由界面里面
1beforeRouteEnter 进入路由之前触发(发请求除了在created还可以在beforeRouteEnter的next的回调里面发请求
2 beforeRouteUpdate当前路由组件更新的时候触发,