图表组件架构级提示词体系

📊 图表组件架构级提示词体系

🎯 阶段一:需求分析与设计

1.1 组件需求分析

设计一个企业级图表组件,用于数据可视化展示:

业务需求:
- 支持多种图表类型:[折线图、柱状图、饼图、散点图]
- 数据源格式:[数组对象、时间序列、分类数据]
- 交互需求:[点击事件、悬停提示、缩放拖拽]
- 显示要求:[响应式、主题切换、动画效果]

技术要求:
- 渲染引擎:[ECharts/D3.js/Chart.js/Recharts]
- 框架集成:[React/Vue/Angular/Svelte]
- 性能要求:[大数据量流畅渲染,10万+数据点]
- 可访问性:[屏幕阅读器支持,键盘导航]

请给出组件架构设计方案。

1.2 技术选型决策

基于以下场景选择图表库:
项目类型:[后台管理系统/数据大屏/移动端应用]
数据规模:[小量实时数据/大数据历史分析]
团队技能:[熟悉ECharts/精通D3/需要开箱即用]
特殊需求:[3D图表/GIS地图/流程图]

请对比:
1. ECharts vs D3.js vs Chart.js vs Recharts
2. 各自的优缺点和适用场景
3. 集成复杂度和性能表现
4. 社区支持和维护状态

给出最终技术选型建议。

🏗️ 阶段二:组件架构设计

2.1 核心架构定义

设计图表组件的分层架构:

1. 基础层(BaseChart)
   - 容器管理
   - 实例生命周期
   - 事件系统
   - 错误处理

2. 配置层(ChartConfig)
   - 主题配置系统
   - 默认选项预设
   - 配置合并策略
   - 类型定义

3. 数据层(DataProcessor)
   - 数据标准化
   - 数据转换(聚合、筛选、排序)
   - 实时数据更新
   - 大数据分片加载

4. 渲染层(Renderer)
   - 图表实例管理
   - 动画控制器
   - 性能优化(虚拟渲染、懒加载)
   - 内存管理

请给出TypeScript接口设计和类图。

2.2 接口设计

定义图表组件的TypeScript接口:

```typescript
// 我需要以下核心接口:
1. IChartProps - 组件Props定义
2. IChartOption - 图表配置选项
3. IChartData - 数据格式规范
4. IChartEvent - 事件系统接口
5. IChartTheme - 主题系统接口

要求:
- 支持泛型,类型安全
- 扩展性强,支持自定义配置
- 提供完整的JSDoc注释
- 包含示例用法

请生成完整的接口定义文件。

🔧 阶段三:基础组件实现

3.1 基础图表组件

创建基础图表组件BaseChart:

技术栈:React + TypeScript + ECharts
要求:

1. Props定义
   - options: EChartsOption(必填)
   - data: any[]
   - theme?: 'light' | 'dark' | 'custom'
   - loading?: boolean
   - onEvents?: Record<string, Function>
   - style?: CSSProperties
   - className?: string

2. 核心功能
   - 自动响应式
   - 主题切换
   - 加载状态
   - 错误边界
   - 性能监控

3. 生命周期管理
   - 组件挂载时初始化图表
   - 数据更新时增量更新
   - 容器大小变化时自适应
   - 组件卸载时清理资源

生成完整组件代码,包含详细注释。

3.2 配置管理系统

创建图表配置管理系统:

功能需求:
1. 主题配置管理
   - 内置主题:light/dark
   - 自定义主题扩展
   - 主题切换动画

2. 默认配置预设
   - 折线图默认配置
   - 柱状图默认配置
   - 饼图默认配置
   - 散点图默认配置

3. 配置合并策略
   - 深度合并自定义配置
   - 配置验证和修复
   - 配置版本管理

4. 配置生成器
   - 根据数据类型自动生成配置
   - 智能颜色分配
   - 自适应图表类型选择

生成配置管理工具类和相关Hook。

📊 阶段四:业务图表组件

4.1 折线图组件

创建高级折线图组件LineChart:

特殊功能需求:
1. 多系列数据支持
2. 时间轴自动格式化
3. 数据点标记和提示
4. 区域填充和渐变
5. 实时数据流更新
6. 预测趋势线
7. 异常值检测标注

性能优化:
- 大数据量时采样显示
- 虚拟滚动支持
- WebGL渲染选项
- 动画帧率控制

生成组件代码,包含完整的示例数据。

4.2 统计图表组件

创建数据分析统计图表:

包含组件:
1. 对比柱状图(ComparisonBarChart)
   - 多维度对比
   - 堆叠显示
   - 百分比模式

2. 分布散点图(DistributionScatterChart)
   - 相关性分析
   - 聚类显示
   - 趋势线拟合

3. 热力图(HeatmapChart)
   - 时间序列热力
   - 地理热力图
   - 矩阵热力图

4. 桑基图(SankeyChart)
   - 流量分析
   - 路径追踪
   - 层级展示

每个组件都需要:
- 完整的TypeScript定义
- 数据适配器
- 交互事件
- 导出功能

阶段五:性能优化

5.1 大数据渲染优化

优化图表组件的大数据渲染性能:

问题场景:
- 10万+数据点渲染卡顿
- 频繁更新导致掉帧
- 内存占用过高

优化方案:
1. 数据采样策略
   - 最大点数限制
   - 智能采样算法
   - 细节层次(LOD)渲染

2. WebGL加速
   - 使用ECharts GL
   - GPU计算支持
   - 离屏渲染

3. 虚拟化渲染
   - 视窗内渲染
   - 滚动加载
   - 渐进式渲染

4. 内存管理
   - 图表实例池
   - 垃圾回收
   - 缓存策略

生成优化代码和性能测试用例。

5.2 实时数据更新优化

优化实时数据流图表:

场景:监控大屏,每秒更新1000+数据点

要求:
1. 增量更新机制
   - 只更新变化数据
   - 避免全量重绘
   - 数据缓冲队列

2. 帧率控制
   - 固定刷新频率
   - 防抖更新
   - 动画平滑过渡

3. WebSocket集成
   - 连接管理
   - 断线重连
   - 数据压缩

4. 性能监控
   - 渲染时间统计
   - 内存泄漏检测
   - 掉帧警告

生成实时图表组件和性能监控工具。

🎨 阶段六:主题与样式

6.1 主题系统

创建可扩展的图表主题系统:

功能需求:
1. 主题定义结构
   - 颜色系统(主色、辅助色、语义色)
   - 字体系统(字体族、字号、字重)
   - 间距系统(边距、内边距)
   - 圆角系统

2. 主题切换
   - 亮色/暗色主题
   - 自定义主题
   - 主题热切换

3. 主题扩展
   - 插件式主题扩展
   - 主题继承机制
   - 主题变量引用

4. 主题生成器
   - 根据品牌色生成主题
   - 对比度自动调整
   - 无障碍颜色检查

生成主题配置文件和主题管理Hook。

6.2 动画系统

创建图表动画系统:

动画类型:
1. 入场动画
   - 渐入
   - 缩放
   - 滑动
   - 弹性

2. 更新动画
   - 数据更新过渡
   - 形态变换动画
   - 路径动画

3. 交互动画
   - 悬停反馈
   - 点击效果
   - 高亮动画

4. 性能优化
   - 硬件加速
   - 动画帧合并
   - 低性能设备降级

生成动画配置和动画控制器。

🔌 阶段七:扩展与集成

7.1 插件系统

设计图表插件系统:

插件类型:
1. 数据处理插件
   - 数据清洗
   - 数据分析
   - 数据转换

2. 渲染插件
   - 自定义图形
   - 特殊效果
   - 外部渲染器

3. 交互插件
   - 手势操作
   - 键盘快捷键
   - 语音控制

4. 导出插件
   - 图片导出
   - PDF生成
   - 数据导出

插件架构要求:
- 插件注册机制
- 生命周期管理
- 依赖注入
- 热插拔支持

生成插件接口定义和插件管理器。

7.2 第三方集成

集成图表组件到不同框架:

目标框架:
1. React集成
   - Hooks封装
   - 上下文集成
   - 状态管理集成

2. Vue集成
   - Composition API封装
   - Provide/Inject集成
   - Vuex/Pinia集成

3. Angular集成
   - 服务封装
   - 依赖注入
   - RxJS集成

4. 微前端集成
   - 模块联邦导出
   - 样式隔离
   - 版本管理

生成各框架的适配层代码。

🧪 阶段八:测试与文档

8.1 组件测试

为图表组件编写完整的测试套件:

测试类型:
1. 单元测试
   - 配置验证
   - 数据转换
   - 工具函数

2. 组件测试
   - 渲染测试
   - Props更新测试
   - 事件触发测试

3. 性能测试
   - 渲染性能基准
   - 内存泄漏检测
   - 大数据压力测试

4. 视觉回归测试
   - 截图对比
   - 像素级差异检测
   - 跨浏览器测试

测试工具:
- Jest + React Testing Library
- Cypress组件测试
- Storybook可视化测试
- Lighthouse性能测试

生成测试配置文件和示例测试。

8.2 文档与示例

创建图表组件文档系统:

文档内容:
1. API文档
   - 组件Props详细说明
   - 事件API
   - 方法API
   - 类型定义

2. 示例库
   - 基础用法示例
   - 进阶功能示例
   - 性能优化示例
   - 常见问题示例

3. 交互式示例
   - 在线配置器
   - 实时预览
   - 代码编辑器

4. 最佳实践
   - 性能优化指南
   - 无障碍指南
   - 移动端适配指南

工具选择:
- Storybook + MDX
- Docusaurus
- VitePress

生成文档配置和示例代码。

🚀 阶段九:生产优化

9.1 打包优化

优化图表组件的打包体积:

问题:当前包体积过大,影响加载速度

优化策略:
1. 按需引入
   - ECharts模块化引入
   - 动态导入图表类型
   - 语言包分离

2. 代码分割
   - 按图表类型分割
   - 按功能分割
   - 运行时加载

3. Tree Shaking
   - 副作用标记
   - 导出优化
   - 死代码消除

4. 压缩优化
   - 图片内联
   - SVG压缩
   - 字体子集化

生成优化后的构建配置。

9.2 监控与错误处理

实现图表组件的生产监控:

监控指标:
1. 性能指标
   - 初始化时间
   - 渲染帧率
   - 内存占用

2. 错误监控
   - 渲染错误
   - 数据错误
   - 配置错误

3. 使用统计
   - 图表类型使用频率
   - 交互行为统计
   - 用户满意度

4. 异常检测
   - 性能异常预警
   - 错误率监控
   - 数据异常检测

集成工具:
- Sentry错误监控
- Datadog性能监控
- 自定义监控面板

生成监控代码和Dashboard。

📦 快速使用模板

基础使用

@/components/charts/BaseChart.tsx
基于这个基础图表组件,创建一个销售额趋势折线图:

数据格式:
```json
[
  { date: "2024-01", sales: 15000 },
  { date: "2024-02", sales: 18000 },
  { date: "2024-03", sales: 22000 }
]

要求:

  1. X轴为时间,格式化为"YYYY-MM"
  2. Y轴为销售额,添加"¥"前缀
  3. 添加趋势线
  4. 悬停显示详细数据
  5. 支持数据钻取(点击进入月度详情)

生成完整组件代码和使用示例。


### **高级功能**

@/components/charts/LineChart.tsx
扩展这个折线图组件,添加以下高级功能:

  1. 对比模式

    • 支持多系列数据对比
    • 切换为百分比显示
    • 添加差异标注
  2. 预测功能

    • 基于历史数据预测未来趋势
    • 显示置信区间
    • 预测算法可配置
  3. 异常检测

    • 自动识别异常数据点
    • 标注异常原因
    • 提供异常处理建议

生成功能实现代码和配置选项。


### **性能优化**

当前图表组件在渲染5万+数据点时出现卡顿:

问题分析:

  • 初始化时间:>5s
  • 内存占用:>200MB
  • 交互响应延迟:>500ms

优化要求:

  1. 实现数据采样,保持视觉一致性
  2. 添加WebGL渲染选项
  3. 实现虚拟滚动
  4. 添加加载状态和进度提示

请生成优化后的代码和性能对比报告。


---

## 🎯 **最佳实践提示词**

### **组件设计模式**

设计一个遵循以下原则的图表组件:

  1. 单一职责原则

    • 只负责图表渲染
    • 数据处理分离
    • 配置管理分离
  2. 开闭原则

    • 支持扩展新图表类型
    • 配置系统可扩展
    • 插件系统支持
  3. 依赖倒置原则

    • 抽象图表渲染接口
    • 支持多渲染引擎
    • 依赖注入配置
  4. 接口隔离原则

    • 拆分基础接口和扩展接口
    • 按需实现接口
    • 避免接口污染

生成符合这些原则的组件架构代码。


### **无障碍支持**

为图表组件添加完整的无障碍支持:

WCAG 2.1 AA标准要求:

  1. 屏幕阅读器支持

    • ARIA标签
    • 键盘导航
    • 焦点管理
  2. 色觉障碍支持

    • 颜色对比度检查
    • 模式切换(色盲模式)
    • 纹理辅助
  3. 键盘操作

    • 全键盘导航
    • 快捷键支持
    • 焦点指示器
  4. 响应式设计

    • 触摸屏优化
    • 高DPI支持
    • 放大不破坏布局

生成无障碍优化代码和测试用例。


---

这套图表组件提示词体系从**架构设计**到**具体实现**,再到**性能优化**和**生产部署**,提供了完整的指导方案。Cursor可以基于这些提示词快速生成高质量的可视化组件代码。
posted @ 2025-12-18 15:22  XiaoZhengTou  阅读(2)  评论(0)    收藏  举报