feat(market-ranking): 完善行情订阅生命周期
This commit is contained in:
@@ -42,6 +42,34 @@ doc/ HTTP 与 4106 行情接口文档
|
||||
市场排名与 AI 选期分别通过独立的 `HqRequestClient` 构造行情订阅参数,共享
|
||||
`common/HqFieldId.ets` 中的 4106 字段 ID。
|
||||
|
||||
## MarketRanking 生命周期
|
||||
|
||||
`MarketRankingNodeComponent` 出现时读取卡片配置、注册 `tcpReconnect` 事件监听,并在
|
||||
`firstPageVisible` 为 `true` 时获取当前 Tab 的 contracts。contracts 返回后先生成占位列表,
|
||||
再由 `MarketRankingHqRequestClient` 发起行情订阅,行情回调会整体替换 `CardData`。
|
||||
|
||||
```text
|
||||
aboutToAppear
|
||||
→ 注册 TCP 重连事件
|
||||
→ 获取当前 Tab 的 contracts
|
||||
→ 填充合约占位列表
|
||||
→ 页面可见时订阅行情
|
||||
```
|
||||
|
||||
运行期间按以下规则更新:
|
||||
|
||||
- `refreshTrigger`:由父组件通过 `@Link` 传入;变化后停止旧行情、重新获取 contracts,
|
||||
并在可见时重新订阅。
|
||||
- `firstPageVisible`:由父组件通过 `@Provide` 提供,组件通过 `@Consume` 监听,默认
|
||||
为 `true`。变为不可见时立即停止行情;恢复可见时优先使用已有 contracts 重新订阅,
|
||||
没有 contracts 才重新请求。
|
||||
- `tcpReconnect`:组件通过公共 `emitter` 监听。重连且页面可见时停止旧行情并重新订阅;
|
||||
页面不可见时忽略,恢复可见后再订阅。
|
||||
- Tab 切换:停止旧行情、清空列表、获取新 Tab 的 contracts,再订阅对应行情。
|
||||
|
||||
`aboutToDisappear` 会解绑 TCP 重连监听并停止行情订阅。HTTP 请求等待期间如果页面变为
|
||||
不可见,contracts 仍可更新,但不会创建行情订阅。
|
||||
|
||||
## 数据与接口
|
||||
|
||||
当前 HTTP Fetcher 仅构造请求参数,行情客户端也尚未连接真实客户端桥接层;页面使用 Mock
|
||||
|
||||
Reference in New Issue
Block a user