在 Vue Router 中,导航钩子(Navigation Guards)用于控制路由的进入和离开,可以在路由变化的不同阶段执行逻辑。Vue Router 提供了多种类型的导航钩子,主要包括以下几种:
一、全局导航钩子
全局导航钩子在路由实例上定义,适用于所有路由的导航。
- beforeEach
在每次路由切换前执行,可以用来进行权限校验、数据加载等操作。
router.beforeEach((to, from, next) => {// 进行权限校验if (to.meta.requiresAuth && !isAuthenticated) {next({ name: 'Login' }); // 重定向到登录页面} else {next(); // 继续导航}
});
- beforeResolve
在所有组件内守卫和异步路由组件解析之后执行,但在导航确认之前。适合需要更复杂的逻辑。
router.beforeResolve((to, from, next) => {// 在这里进行一些异步操作next();
});
- afterEach
在每次路由切换后执行&#x