Open a7650 opened 5 years ago
路由守卫的解析流程如下 1.导航被触发 2.在失活组件里调用beforeRouteLeave(在组件里声明) 3.调用全局的beforeEach(在main里声明:router.beforeEach) 4.如果组件是重用的,调用brforeRouteUpdate。(此时只会触发全局的三个守卫) 5.在路由配置里调用beforeEnter 6.异步解析路由(前面几个均是按顺序执行,之后的是异步执行) 7.在被激活的组件里调用beforeRouteEnter(在组件里定义,此时不能访问this,因为还没实例创建,可以在该函数的next里传入一个回调,该回调参数就是this实例,会在实例创建完成后触发,也是唯一一个可以在next中传入以组件实例为参数的守卫) 8.调用全局的beforeResolve 9.导航被确认 10.调用全局afterEach(路由守卫里只有该函数不用next) 11.触发dom更新 12.执行beforeRouteEnter中的next中传入的回调函数。
路由守卫的解析流程如下 1.导航被触发 2.在失活组件里调用beforeRouteLeave(在组件里声明) 3.调用全局的beforeEach(在main里声明:router.beforeEach) 4.如果组件是重用的,调用brforeRouteUpdate。(此时只会触发全局的三个守卫) 5.在路由配置里调用beforeEnter 6.异步解析路由(前面几个均是按顺序执行,之后的是异步执行) 7.在被激活的组件里调用beforeRouteEnter(在组件里定义,此时不能访问this,因为还没实例创建,可以在该函数的next里传入一个回调,该回调参数就是this实例,会在实例创建完成后触发,也是唯一一个可以在next中传入以组件实例为参数的守卫) 8.调用全局的beforeResolve 9.导航被确认 10.调用全局afterEach(路由守卫里只有该函数不用next) 11.触发dom更新 12.执行beforeRouteEnter中的next中传入的回调函数。