docs/archives/126-submode-persistence/README.md
实现三种功能模式(基础/上下文/图像)的子模式独立持久化,并将所有子模式选择器统一移至导航栏,提升用户体验的一致性。
状态: ✅ 已完成
PRO_SUB_MODE 存储键ProSubMode 类型useProSubMode composableBASIC_SUB_MODE 存储键BasicSubMode 类型useBasicSubMode composableIMAGE_SUB_MODE 存储键ImageSubMode 类型useImageSubMode composable现象: 只有上下文模式显示子模式选择器,基础模式的选择器不见了
原因: v-if 条件只判断了 functionMode === 'pro'
解决: 改为独立显示三个选择器
现象: 基础模式和上下文模式的子模式选择相互影响
原因: 使用同一个 selectedOptimizationMode 变量
解决: 完全独立的存储和状态管理
现象: 从文生图切换到图生图时正常,但刷新页面后文件上传按钮不显示
原因: useImageWorkspace 的 restoreSelections 方法未恢复 imageMode
解决: 在 restoreSelections 中添加从 UI_SETTINGS_KEYS.IMAGE_SUB_MODE 恢复的逻辑
docs/archives/126-submode-persistence/
├── README.md # 本文件 - 功能概述
├── design.md # 完整的设计与实施文档(v4.0)
├── implementation.md # 实施详情和代码示例
└── experience.md # 经验总结和最佳实践
三种功能模式使用完全独立的存储键和Composable,即使子模式名称相同也不共享状态。
用户的关键洞察:
"基础模式也应该有自己的存储,这个也应该分开...因为这两个功能模式本质上控制的是不同的,只是当前他们的子模式碰巧都叫 系统/用户提示词优化而已。"
每个Composable内部维护单例状态,确保全局唯一,避免多实例冲突。
不阻塞应用启动,通过 ensureInitialized() 延迟加载,并带有防抖机制。
每次子模式切换自动保存到localStorage,用户无感知。
如遇到子模式相关问题,参考 experience.md 的常见问题部分。
文档版本: v1.0
最后更新: 2025-10-22
维护者: Claude & 用户