router.afterEach
是 Vue Router 提供的全局后置钩子,用于在路由切换之后执行一些逻辑。与 beforeEach
钩子不同,afterEach
不需要调用 next
函数,因为它是在导航已经确认的情况下执行的。
基本用法如下:
router.afterEach((to, from) => {
// 在路由切换之后执行的逻辑
// ...
});
通常,afterEach
钩子用于执行一些与路由切换后的全局状态或行为相关的操作。以下是一些常见的用法:
1. 页面埋点统计:
router.afterEach((to, from) => {
// 上报页面访问数据到统计平台
reportPageView(to.path);
});
2. 滚动行为控制:
router.afterEach((to, from) => {
// 恢复页面滚动位置
window.scrollTo(0, 0);
});
3. 全局 Loading 关闭:
router.afterEach((to, from) => {
// 关闭全局 Loading
hideGlobalLoading();
});
4. 统一异常处理:
router.afterEach((to, from) => {
// 检查路由切换后的异常情况,进行统一处理
if (to.meta.error) {
handleRouteError(to.meta.error);
}
});
5. 页面访问日志记录:
router.afterEach((to, from) => {
// 记录用户访问日志
logUserAccess(to);
});
afterEach
钩子通常用于处理一些与路由切换后全局状态和行为相关的逻辑,你可以根据实际需求进行相应的操作。由于它是在导航已经完成的情况下执行,因此不需要调用 next
。