Commit Graph

2 Commits

Author SHA1 Message Date
Leo
b8d6e5d781 fix(router): 解决页面刷新时NavigationGuard阻止路由跳转的问题
- 修复NavigationGuard在页面刷新时错误地阻止路由导航的问题
- 添加页面刷新检测逻辑,允许刷新场景下的正常导航
- 优化防抖机制,使用时间戳进行更精确的重复点击检测
- 修复"Navigation aborted from '/' to '/system/user'"错误

问题原因:
NavigationGuard的beforeEach守卫与主路由守卫冲突,在页面刷新时
误判正常的路由重定向为重复导航而阻止跳转。

解决方案:
1. 检测页面刷新场景(from.name为空或路径为'/')
2. 使用时间戳替代简单的路径对比进行防抖判断
3. 优化导航状态重置逻辑,保持防抖效果的同时允许正常导航
2025-07-06 03:21:12 +08:00
Leo
5e13342f7b fix(router): 修复Vue Router导航错误和组件生命周期问题
* 新增导航防护机制
  - NavigationGuard类防止快速路由切换导致的错误
  - 实现防抖和安全导航方法(safePush/safeReplace)
* 新增组件安全加载机制
  - safeAsyncComponent包装器处理异步组件加载错误
  - 支持重试机制和ChunkLoadError恢复
* 增强路由守卫错误处理
  - 全面的try-catch错误捕获
  - 统一的路由错误处理函数
* 优化路由配置
  - 使用安全组件加载器包装所有异步组件
  - 改进路由重定向逻辑

解决了"Cannot read properties of null (reading 'isUnmounted')"等Vue Router错误
2025-07-06 02:33:37 +08:00