document market ranking component split

This commit is contained in:
clz
2026-07-27 10:46:31 +08:00
parent 5af37bfa51
commit c05fc03fd8
+23
View File
@@ -36,6 +36,29 @@
- DataFetcher 仅使用 `api` / `hasPeriods`;行情客户端仅使用 `sortId` / `sortOrder`
- 删除旧 `TabMetric.label``PeriodRange.label` 字段及相关 `ResourceStr` 依赖。
## 后续优化设计:拆分 MarketRankingNodeComponent
`MarketRankingNodeComponent.ets` 当前同时负责页面状态、生命周期、HTTP 请求编排、HQ 订阅、TCP 重连、
跳转参数、展示计算和 UI 构建。后续按以下职责拆分:
- `MarketRankingNodeComponent.ets`:继续作为唯一状态拥有者,保留 `@State`、生命周期、请求/订阅版本保护、
Tab 选择、跳转和子组件回调编排。
- `MarketRankingDisplayHelper.ets`:承载第三列标题、值、颜色、展示行数和空状态高度等纯展示计算。
- `components/MarketRankingTitleBar.ets`:标题、说明入口和展开/收起交互。
- `components/MarketRankingTabBar.ets`:一级/二级 Tab,以及滚动宽度、偏移量和右侧渐变等局部 UI 状态。
- `components/MarketRankingTable.ets`:表头、加载/空状态、行情行和行点击回调。
- `components/MarketRankingExplainSheet.ets`:说明弹层内容;`bindSheet` 显隐状态仍由主组件控制。
分阶段实施,避免重构时破坏行情时序:
1. 先拆业务/UI 配置和纯展示计算,不改变请求及订阅流程。
2. 再拆 `TabBar``Table`,主组件通过明确参数和回调传递状态。
3. 最后清理无效 `isDarkMode` 状态、未使用回调参数、重复布局常量及命名不一致。
暂不把 HTTP、HQ、请求版本、页面可见性和 TCP 重连拆入多个 ViewModel/Controller。这些逻辑存在严格的
“旧请求失效 → 释放订阅 → HTTP 返回 → 版本校验 → HQ 订阅 → 回调校验”时序;应先完成宿主生命周期和
重连验证,再评估是否继续抽取控制器。
## 仍需在宿主工程确认
### 1. 行情字段