路由守卫为: 全局守卫:beforeEach 后置守卫:afterEach 全局解析守卫:beforeResolve 路由独享守卫:beforeEnter
组内路由守卫:beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave
to: Route: 即将要进入的目标 路由对象 from: Route: 当前导航正要离开的路由 next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。 next参数 next()//直接进to 所指路由 next(false) //中断当前路由 next(‘route’) //跳转指定路由 next(‘error’) //跳转错误路由 确保要调用 next 方法,否则钩子就不会被 resolved
beforeResolve router.beforeEach 类似,区别是在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后,解析守卫就被调用
afterEach
router.afterEach((to, from) => { // ... }) beforeEnter routes: [ { path: '/foo', component: Foo, beforeEnter: (to, from, next) => { // ... } } ] beforeRouteEnter beforeRouteEnter(to, from, next)=>{ //不能调用this,该路由调用时,组件并未被初始化 } beforeRouteUpdate beforeRouteUpdate(to,from,next){ //路由动态参数改变,组件被复用时调用(/user/1=>1/user/2) //可以调用this } //(2.2 新增) beforeRouteLeave <span style="font-weight:normal;">beforeRouteLeave(to, from, next)=>{ //离开该组件时调用 //可以访问this //通常用来禁止用户在还未保存修改前突然离开。该导航可以通过 next(false) 来取消 }</span>设置 三选一
const router = new VueRouter({routes, mode:'hash|history|abstract',})