refactor: 页面状态由 URL 路由驱动 - 移除 usePageState/useNavigation/hooks/constants,改用嵌套路由 + useParams

This commit is contained in:
2026-03-27 18:46:34 +08:00
parent 9feb62da3f
commit 1455cc850d
44 changed files with 587 additions and 1048 deletions

View File

@@ -14,3 +14,7 @@ context: |
- **优先阅读README.md**README.md文档是项目的开发文档记录代码结构和关键开发模式优先读取获取上下文
- 涉及页面/路由/组件/功能模块变更或技术栈调整时同步更新README.md
- Git提交: 仅中文; 格式为"类型: 简短描述",类型可选: feat(新功能)/fix(修复)/refactor(重构)/docs(文档)/style(格式)/test(测试)/chore(构建/工具); 多行描述空行后加详细说明; 禁创建git操作task
rules:
proposal:
- 仔细审查每一个过往spec判断是否存在Modified Capabilities

View File

@@ -2,7 +2,7 @@
## Purpose
提供统一的状态管理方案,包括全局用户信息上下文、页面状态持久化、导航逻辑管理,确保应用状态的一致性和可维护性
提供统一的全局用户信息上下文,确保应用状态的一致性和可维护性。页面状态和导航逻辑由 URL 路由驱动
## Requirements
@@ -20,33 +20,3 @@
#### Scenario: UserContext 提供默认值
- **WHEN** 应用启动且没有提供用户信息
- **THEN** 系统使用默认用户信息name: '张三', avatar: '张', role: 'AI 产品部'
### Requirement: 页面状态持久化 Hook
系统 SHALL 提供 usePageState Hook封装页面状态持久化逻辑自动处理 localStorage 同步和主页跳转重置。
#### Scenario: usePageState 初始化从 localStorage 恢复状态
- **WHEN** 页面使用 usePageState Hook 并传入 storageKey 和 defaultPage
- **THEN** 系统从 localStorage 读取之前保存的页面状态,若无则使用 defaultPage
#### Scenario: usePageState 自动同步状态到 localStorage
- **WHEN** 调用 usePageState 返回的 setCurrentPage 函数
- **THEN** 系统更新状态并自动保存到 localStorage
#### Scenario: usePageState 处理主页跳转重置
- **WHEN** 从主页跳转到页面location.state.fromHome 为 true
- **THEN** 系统重置页面状态为默认值,并清除路由 state
#### Scenario: usePageState 提供 getPageTitle 函数
- **WHEN** 调用 usePageState 返回的 getPageTitle 函数
- **THEN** 系统根据当前页面 ID 从配置中查找并返回对应的页面标题
### Requirement: 导航逻辑 Hook
系统 SHALL 提供 useNavigation Hook统一处理页面导航和路由状态管理。
#### Scenario: useNavigation 提供页面切换函数
- **WHEN** 调用 useNavigation 返回的 navigateToPage 函数并传入目标页面 ID
- **THEN** 系统更新当前页面状态并执行相应导航逻辑
#### Scenario: useNavigation 处理带数据的页面切换
- **WHEN** 调用 navigateToPage 并传入目标页面 ID 和附加数据(如 skillId
- **THEN** 系统更新页面状态和附加数据状态