首次页面加载正常,但是当通过页面点击切换路由的时候白屏,无法正常渲染子页面
Vue Transition + KeepAlive 空白页 bug**: `<Transition mode="out-in">` + 条件渲染会导致路由切换空白页。`mode="out-in"` 要求旧元素完成 leave 动画后新元素才进入,但路由切换时条件渲染可能在动画前就移除了旧元素,导致 `<Transition>` 永远等待一个不存在的元素 → 死锁。**解决方案**: 移除 `mode="out-in"`(保留 Transition 动画),或在 `apps/web-antd/src/preferences.ts` 设置 `transition: { enable: false }` 关闭动画走 `v-else` 分支。
Effects 目录
effects 目录专门用于存放与轻微耦合相关的代码和逻辑。如果你的包具有以下特点,建议将其放置在 effects 目录下:
- 状态管理:使用状态管理框架
pinia,并包含处理副作用(如异步操作、API 调用)的部分。 - 用户偏好设置:使用
@vben-core/preferences处理用户偏好设置,涉及本地存储或浏览器缓存逻辑(如使用localStorage)。 - 导航和路由:处理导航、页面跳转等场景,需要管理路由变化的逻辑。
- 组件库依赖:包含与特定组件库紧密耦合或依赖大型仓库的部分。
通过将相关代码归类到 effects 目录,可以使项目结构更加清晰,便于维护和扩展。