Files
Genarrative/docs/technical/FRONTEND_INDEPENDENT_PAGE_ROUTES_2026-04-25.md
2026-04-29 11:51:04 +08:00

4.7 KiB
Raw Blame History

前端页面独立路由路径说明

背景

平台入口、RPG 创作链、拼图创作链和大鱼吃小鱼创作链已经在 PlatformEntryFlowShellImpl 中通过 selectionStage 分阶段渲染。此前多数页面共享同一个浏览器路径,导致刷新、复制地址和浏览器前进后退时缺少清晰页面语义。

本轮目标是在不引入 React Router、不拆现有页面组件的前提下为现有主要页面分配稳定路径并让内部阶段切换同步浏览器地址。

路由原则

  • src/routing/appRoutes.tsx 继续只负责应用级入口:正式主应用、拼图调试直达页、大鱼吃小鱼调试直达页。
  • 正式主应用内部页面路径由 src/routing/appPageRoutes.ts 统一维护,不在组件里散落硬编码字符串。
  • /puzzle/big-fish 保持为玩法调试直达入口;正式链路中的拼图和大鱼运行页使用 /runtime/puzzle/runtime/big-fish,避免语义冲突。
  • 独立路径先解决页面阶段语义和浏览器前进后退;依赖运行中内存对象的详情页、结果页和运行页直接刷新后仍允许回退到平台首页或展示现有恢复态,不在本轮扩展资源 ID 深链加载。
  • sessionStorage 里的 RPG Agent 恢复指针只能在当前路径属于 /creation/rpg/*,或 URL 显式携带 customWorldSessionId / customWorldOperationId / customWorldGenerationSource 时生效;刷新平台首页、分类页、作品详情页时不能被本地残留指针强制跳到 /creation/rpg/agent

页面路径表

页面阶段 路径 说明
platform / 平台首页、广场、我的、创作中心等主入口
work-detail /works/detail 统一公开作品详情页,承接 RPG、拼图、大鱼吃小鱼公开作品
detail /worlds/detail RPG 世界详情页,依赖当前已选作品
agent-workspace /creation/rpg/agent RPG Agent 共创工作区
custom-world-generating /creation/rpg/generating RPG 世界草稿生成进度页
custom-world-result /creation/rpg/result RPG 世界结果页与编辑页
big-fish-agent-workspace /creation/big-fish/agent 大鱼吃小鱼 Agent 共创工作区
big-fish-result /creation/big-fish/result 大鱼吃小鱼草稿结果页
big-fish-runtime /runtime/big-fish 正式链路中的大鱼吃小鱼运行页
puzzle-agent-workspace /creation/puzzle/agent 拼图 Agent 共创工作区
puzzle-result /creation/puzzle/result 拼图草稿结果页
puzzle-gallery-detail /gallery/puzzle/detail 拼图作品详情页,依赖当前已选作品
puzzle-runtime /runtime/puzzle 正式链路中的拼图运行页
RPG 选角页 /runtime/rpg/characters 进入世界后、确认角色前的选角阶段
RPG 冒险页 /runtime/rpg/adventure 已确认角色后的 RPG 主运行态

落地边界

  • useRpgRuntimeOverlayState 初始化时从当前路径推导 selectionStage
  • setSelectionStage(...) 被统一包一层,阶段变化时同步 history.pushState
  • RPG 选角和冒险运行态由 RpgRuntimeShell 按当前 gameState 同步路径。
  • 浏览器 popstate 时只回写 selectionStage,不重建详情页依赖的业务对象。
  • 已有 /puzzle/big-fish 调试入口继续由应用级路由分流,不进入 selectionStage

验收口径

  1. 访问 /creation/rpg/agent/creation/puzzle/agent/creation/big-fish/agent 能进入主应用并初始化到对应页面阶段。
  2. 从页面内切换到结果页、运行页或返回首页时,浏览器路径同步更新。
  3. 浏览器后退/前进能驱动 selectionStage 回到对应页面。
  4. /puzzle/big-fish 仍进入原有玩法调试直达页。
  5. 仅有 sessionStorage 残留 RPG Agent 指针时,刷新 / 仍停留平台首页;刷新 /creation/rpg/agent 才恢复对应 Agent 工作区。