其他页面

📎 引用文件

本文引用的文件 - router.tsx - Home.tsx - AlphaZoo.tsx - Compare.tsx - Correlation.tsx - Reports.tsx - Scheduled.tsx - api.ts - alpha_routes.py - scheduled_routes.py

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

本章节面向 Vibe-Trading 的“其他页面”模块,覆盖主页(Home)、因子动物园(AlphaZoo)、策略对比(Compare)、相关性分析(Correlation)、报告中心(Reports)、定时任务(Scheduled)等页面的功能说明、用户交互流程、数据展示方式、页面间导航与状态共享机制、路由配置、前后端集成方式、数据获取与处理逻辑,以及性能优化、懒加载策略、缓存机制与常见问题排查。

项目结构

前端采用 React + React Router,所有页面通过懒加载(Suspense + lazy)按需引入,减少首屏体积;页面统一由 Layout 包裹,路由集中定义在 router.tsx。各页面通过统一的 API 客户端(@/lib/api)访问后端 REST 接口,部分长耗时任务使用 SSE(EventSource)进行进度与结果推送。

graph TB A["浏览器"] --> B["React Router<br/>路由分发"] B --> C["Layout 布局"] C --> D["Home 主页"] C --> E["AlphaZoo 因子动物园"] C --> F["Compare 策略对比"] C --> G["Correlation 相关性分析"] C --> H["Reports 报告中心"] C --> I["Scheduled 定时任务"] D --> J["@/lib/api 客户端"] E --> J F --> J G --> J H --> J I --> J J --> K["后端 FastAPI 服务"]

图表来源 - router.tsx:1-69 - api.ts:72-100

章节来源 - router.tsx:1-69

核心组件

章节来源 - router.tsx:1-69 - api.ts:72-100 - AlphaZoo.tsx:643-776

架构总览

下图展示了从前端页面到后端服务的整体调用链路,包括同步 REST 与异步 SSE 两种模式。

sequenceDiagram participant U as "用户" participant P as "前端页面" participant R as "React Router" participant A as "API 客户端" participant S as "后端 FastAPI" U->>R : 访问 /reports R-->>P : 渲染 Reports 页面 P->>A : listRuns(limit=100) A->>S : GET /runs?limit=100 S-->>A : JSON 列表 A-->>P : 返回数据 P-->>U : 展示报告列表 Note over P,S : AlphaZoo 基准测试 U->>P : 提交基准测试 P->>A : createAlphaBench(...) A->>S : POST /alpha/bench S-->>A : {job_id} P->>S : GET /alpha/bench/{job_id}/stream (EventSource) S-->>P : progress/result/done/error

图表来源 - router.tsx:48-66 - api.ts:123-156 - alpha_routes.py:493-580

详细组件分析

主页(Home)

章节来源 - Home.tsx:1-69 - router.tsx:52-55

因子动物园(AlphaZoo)

flowchart TD Start(["进入 AlphaZoo"]) --> View{"当前路径"} View --> |/alpha-zoo| Browse["浏览列表<br/>筛选/搜索/分页"] View --> |/alpha-zoo/bench| Bench["基准测试表单<br/>提交任务"] View --> |/alpha-zoo/compare| Compare["因子对比<br/>选择多个因子"] View --> |/alpha-zoo/:alphaId| Detail["因子详情<br/>公式/元数据/源码"] Bench --> Submit["POST /alpha/bench"] Submit --> Stream["EventSource 订阅<br/>progress/result/done/error"] Stream --> Result["渲染结果"] Detail --> RunBench["跳转到基准页并预填参数"]

图表来源 - AlphaZoo.tsx:125-140 - AlphaZoo.tsx:169-198 - AlphaZoo.tsx:688-776 - alpha_routes.py:493-580

章节来源 - AlphaZoo.tsx:125-140 - AlphaZoo.tsx:169-198 - AlphaZoo.tsx:688-776 - alpha_routes.py:383-446 - alpha_routes.py:452-487 - alpha_routes.py:493-580

策略对比(Compare)

sequenceDiagram participant U as "用户" participant C as "Compare 页面" participant A as "API 客户端" participant S as "后端" U->>C : 选择左/右运行 C->>A : getRun(leftId), getRun(rightId) A->>S : GET /runs/{id} S-->>A : 指标+权益曲线 A-->>C : 数据 C-->>U : 渲染叠加曲线与指标差异表

图表来源 - Compare.tsx:235-320 - api.ts:133-142

章节来源 - Compare.tsx:235-320 - api.ts:133-142

相关性分析(Correlation)

flowchart TD Input["输入资产代码/窗口/方法"] --> Compute["点击计算"] Compute --> Parallel["并行请求<br/>/correlation<br/>/correlation/regime"] Parallel --> Render["渲染矩阵与时间轴"]

图表来源 - Correlation.tsx:32-56 - api.ts:125-132

章节来源 - Correlation.tsx:32-56 - api.ts:125-132

报告中心(Reports)

章节来源 - Reports.tsx:23-82 - Reports.tsx:191-257 - api.ts:133-142

定时任务(Scheduled)

sequenceDiagram participant U as "用户" participant S as "Scheduled 页面" participant A as "API 客户端" participant R as "后端" U->>S : 创建任务 S->>A : createScheduledRun(body) A->>R : POST /scheduled-runs R-->>A : 返回任务 A-->>S : 更新列表 loop 每15秒 S->>A : listScheduledRuns(signal) A->>R : GET /scheduled-runs R-->>A : 任务列表 A-->>S : 刷新UI end

图表来源 - Scheduled.tsx:102-128 - Scheduled.tsx:148-180 - scheduled_routes.py:258-363

章节来源 - Scheduled.tsx:102-128 - Scheduled.tsx:148-180 - scheduled_routes.py:258-363

依赖关系分析

graph LR Pages["前端页面"] --> Router["路由配置"] Pages --> API["@/lib/api"] API --> AlphaRoutes["/alpha/*"] API --> ScheduledRoutes["/scheduled-runs/*"] API --> Runs["/runs"] API --> Corr["/correlation*"]

图表来源 - router.tsx:48-66 - api.ts:123-156 - alpha_routes.py:383-446 - scheduled_routes.py:258-363

章节来源 - router.tsx:48-66 - api.ts:123-156 - alpha_routes.py:383-446 - scheduled_routes.py:258-363

性能考虑

[本节为通用指导,不直接分析具体文件]

故障排除指南

章节来源 - api.ts:6-31 - AlphaZoo.tsx:721-776 - Scheduled.tsx:172-180

结论

本模块通过清晰的路由与懒加载策略、统一的 API 客户端与 SSE 事件流,实现了主页、因子动物园、策略对比、相关性分析、报告中心与定时任务的高效协作。页面间通过 URL 参数与本地状态共享上下文,后端通过并发控制与心跳保活保障稳定性。建议在生产环境中关注认证与网络错误处理,并结合分页与图表优化提升用户体验。