在 Vue Router 中,有全局导航守卫和组件内的导航钩子,它们用于在路由发生改变前、后或时进行一些操作。
全局导航守卫:
-
beforeEach: 在路由跳转前执行,常用于进行权限校验或全局设置。
-
beforeResolve: 在导航被确认之前,同时在所有组件内守卫和异步路由组件被解析之后执行。
-
afterEach: 在导航完成之后,常用于页面加载完成后的一些操作,如埋点或页面滚动等。
路由独享的守卫:
- beforeEnter: 在单个路由配置中定义,针对特定路由的导航前守卫。
组件内的导航钩子:
-
beforeRouteEnter: 在路由进入该组件之前调用,不能直接访问组件实例,可通过回调函数访问组件实例。
-
beforeRouteUpdate: 在当前路由改变,但该组件被复用时调用,可访问组件实例。
-
beforeRouteLeave: 在离开当前路由时调用,常用于离开前的确认操作或清理任务。
这些导航守卫和钩子允许开发者在不同的路由跳转阶段执行特定的逻辑,例如权限验证、页面加载、数据准备等。全局导航守卫适用于全局设置和全局操作,而路由独享的守卫和组件内的导航钩子更适用于特定路由或组件的操作和处理。
Was this helpful?
0 / 0