迁移与常见问题
从旧实现迁移
当前仓库已修正导航和缓存行为,但不代表这些改动已经发布到 npm。
push/replace返回真实 Promise:使用await,并处理失败结果和拒绝。addRouter同步抛出配置错误,不再吞掉错误返回 false。beforeEach返回注销函数,支持异步守卫。确认保护不再依赖用户注册 beforeEach。- 取消导航不会写入新动态缓存,也不会关闭离开保护。
reloadRoutes预检查整个配置和父子依赖;缺少父路由不再在批量装载中静默回退。- 动态路由与持久化清单分离,单缓存模式也能清除所有已注册动态页面。
- Pinia 已显式声明为 peer dependency。
旧缓存可能含静态路由、旧模板键或失效的父关系。升级时清理旧缓存,或按账号和配置版本迁移。
页面刷新后 404
检查是否配置持久化,并在创建 router 前设置回调;确认恢复数据中的模板键和父路由有效。单缓存无法自动补足动态父路由树。
同模板输入没有保留
检查组件是否用懒加载模板、route meta 是否标记 keepAlive、是否在成功导航后维护名单,以及 <keep-alive :include> 是否绑定同一 store。名单匹配的是组件名称。
路径参数被丢弃
params 必须对应路径中的 :参数名。例如 { params: { id: '1' } } 需要 /report/:id;普通筛选条件请使用 query。
是否已具备全面生产保证
核心实现有自动化测试与 Chromium 开发环境验证。跨浏览器、生产构建浏览器执行、存储异常、并发导航和关闭标签页行为仍应在具体项目中验证。覆盖率不能替代场景验证。