路由的导航守卫又叫做路由的钩子函数(生命周期函数)一共有三种
第一种是全局守卫
beforeEach路由进入之前
beforeResolve 路由解析守卫
afterEach路由进入之后
第二种组件级守卫
beforeRouteEnter路由进入之前
beforeRouteUpdate路由更新之前
beforeRouteLeave路由离开之前
组件级守卫有一个问题就是拿不到this,解决方法是next接收一个回调函数这个回调函数的第一个参数 vm 就是组件实例就相当于是 this
第三种
独享守卫
beforeEnter路由进入之前
beforEach 和 beforeResolve 的区别:
他们两个都是在路由跳转之前执行但是 beforeEach 是在解析路由规则之前 执行,beforeResolve 是解析之后路由跳转之前执行,beforeEach 比 beforeResolve 执行的时机更早
守卫的执行顺序:
全局前置
独享守卫
组件守卫
解析守卫
后置守卫