@agions/taroviz 1.11.1 → 1.11.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +119 -302
  2. package/dist/cjs/index.js +1 -1
  3. package/dist/cjs/vendors.js +1 -0
  4. package/dist/cjs/vendors~echarts.js +1 -0
  5. package/dist/esm/index.js +6621 -50502
  6. package/dist/esm/vendors.js +16770 -0
  7. package/dist/esm/vendors~echarts.js +59417 -0
  8. package/package.json +10 -11
  9. package/src/adapters/MiniAppAdapter.ts +136 -0
  10. package/src/adapters/__tests__/index.test.ts +1 -1
  11. package/src/adapters/h5/__tests__/index.test.ts +4 -2
  12. package/src/adapters/h5/index.ts +32 -33
  13. package/src/adapters/harmony/index.ts +23 -245
  14. package/src/adapters/index.ts +18 -12
  15. package/src/adapters/swan/index.ts +6 -69
  16. package/src/adapters/tt/index.ts +7 -70
  17. package/src/adapters/types.ts +2 -3
  18. package/src/adapters/weapp/index.ts +6 -69
  19. package/src/charts/__tests__/testUtils.tsx +87 -0
  20. package/src/charts/boxplot/__tests__/index.test.tsx +49 -103
  21. package/src/charts/boxplot/index.tsx +2 -1
  22. package/src/charts/boxplot/types.ts +15 -14
  23. package/src/charts/common/BaseChartWrapper.tsx +84 -78
  24. package/src/charts/common/__mocks__/BaseChartWrapper.tsx +17 -0
  25. package/src/charts/createChartComponent.tsx +48 -0
  26. package/src/charts/index.ts +88 -30
  27. package/src/charts/liquid/index.tsx +260 -77
  28. package/src/charts/liquid/types.ts +5 -5
  29. package/src/charts/parallel/__tests__/index.test.tsx +40 -67
  30. package/src/charts/parallel/index.tsx +2 -1
  31. package/src/charts/parallel/types.ts +16 -15
  32. package/src/charts/tree/index.tsx +4 -1
  33. package/src/charts/tree/types.ts +1 -1
  34. package/src/charts/utils.ts +9 -7
  35. package/src/components/DataFilter/index.tsx +25 -4
  36. package/src/core/components/Annotation.tsx +2 -3
  37. package/src/core/components/BaseChart.tsx +27 -49
  38. package/src/core/components/ErrorBoundary.tsx +17 -4
  39. package/src/core/components/LazyChart.tsx +59 -55
  40. package/src/core/components/hooks/useChartInit.ts +6 -3
  41. package/src/core/index.ts +1 -1
  42. package/src/core/themes/ThemeManager.ts +1 -1
  43. package/src/core/types/index.ts +0 -12
  44. package/src/core/types/platform.ts +2 -5
  45. package/src/core/utils/codeGenerator/CodeGenerator.ts +1 -1
  46. package/src/core/utils/codeGenerator/types.ts +2 -2
  47. package/src/core/utils/common.ts +12 -5
  48. package/src/core/utils/configGenerator/ConfigGenerator.ts +4 -4
  49. package/src/core/utils/configGenerator/types.ts +16 -12
  50. package/src/core/utils/debug/DebugPanel.tsx +14 -11
  51. package/src/core/utils/debug/debugger.ts +9 -9
  52. package/src/core/utils/debug/types.ts +4 -4
  53. package/src/core/utils/download.ts +134 -0
  54. package/src/core/utils/drillDown.ts +33 -353
  55. package/src/core/utils/drillDownHelpers.ts +426 -0
  56. package/src/core/utils/export/ExportUtils.ts +34 -66
  57. package/src/core/utils/index.ts +23 -15
  58. package/src/core/utils/performance/PerformanceAnalyzer.ts +35 -20
  59. package/src/core/utils/performanceUtils.ts +310 -0
  60. package/src/core/utils/setOptionUtils.ts +59 -0
  61. package/src/core/version.ts +14 -0
  62. package/src/editor/EnhancedThemeEditor.tsx +362 -540
  63. package/src/editor/ThemeEditor.tsx +55 -321
  64. package/src/editor/components/ThemeBasicSettings.tsx +113 -0
  65. package/src/editor/components/ThemeColorEditor.tsx +105 -0
  66. package/src/editor/components/ThemeSelector.tsx +70 -0
  67. package/src/editor/hooks/useThemeEditorState.ts +201 -0
  68. package/src/editor/index.ts +10 -2
  69. package/src/hooks/__tests__/index.test.tsx +3 -1
  70. package/src/hooks/chartConnectHelpers.ts +335 -0
  71. package/src/hooks/index.ts +30 -63
  72. package/src/hooks/types.ts +162 -0
  73. package/src/hooks/useAnimation.ts +41 -38
  74. package/src/hooks/useChartConnect.ts +88 -238
  75. package/src/hooks/useChartDownload.ts +25 -27
  76. package/src/hooks/useChartHistory.ts +33 -46
  77. package/src/hooks/useChartSelection.ts +31 -39
  78. package/src/hooks/useDataZoom.ts +164 -168
  79. package/src/hooks/usePerformance.ts +20 -12
  80. package/src/hooks/usePerformanceHooks.ts +278 -0
  81. package/src/hooks/utils/chartDownloadUtils.ts +40 -53
  82. package/src/hooks/utils/dataTransformUtils.ts +22 -0
  83. package/src/index.ts +52 -33
  84. package/src/main.tsx +4 -9
  85. package/src/charts/bar/__tests__/index.test.tsx +0 -113
  86. package/src/charts/bar/index.tsx +0 -14
  87. package/src/charts/candlestick/__tests__/index.test.tsx +0 -40
  88. package/src/charts/candlestick/index.tsx +0 -13
  89. package/src/charts/funnel/index.tsx +0 -14
  90. package/src/charts/gauge/index.tsx +0 -14
  91. package/src/charts/graph/__tests__/index.test.tsx +0 -47
  92. package/src/charts/graph/index.tsx +0 -13
  93. package/src/charts/heatmap/index.tsx +0 -14
  94. package/src/charts/line/__tests__/index.test.tsx +0 -107
  95. package/src/charts/line/index.tsx +0 -15
  96. package/src/charts/pie/__tests__/index.test.tsx +0 -112
  97. package/src/charts/pie/index.tsx +0 -14
  98. package/src/charts/radar/index.tsx +0 -14
  99. package/src/charts/sankey/index.tsx +0 -18
  100. package/src/charts/scatter/index.tsx +0 -14
  101. package/src/charts/sunburst/index.tsx +0 -18
  102. package/src/charts/treemap/index.tsx +0 -18
  103. package/src/charts/wordcloud/__tests__/index.test.tsx +0 -39
  104. package/src/charts/wordcloud/index.tsx +0 -13
package/README.md CHANGED
@@ -13,70 +13,106 @@
13
13
  <a href="https://github.com/Agions/TaroViz/blob/main/LICENSE">
14
14
  <img src="https://img.shields.io/npm/l/@agions/taroviz.svg" alt="license">
15
15
  </a>
16
+ <a href="https://github.com/Agions/TaroViz/actions/workflows/docs-deploy.yml">
17
+ <img src="https://github.com/Agions/TaroViz/actions/workflows/docs-deploy.yml/badge.svg" alt="Deploy Documentation">
18
+ </a>
16
19
  </p>
17
20
  </div>
18
21
 
19
- ## 📢 最新版本 v1.10.0
22
+ ## 最新版本 v1.11.5
23
+
24
+ TaroViz v1.11.5 - 基于 Taro 和 ECharts 的专业级多端图表组件库。
25
+
26
+ ### 🎉 v1.11.5 更新内容(2026-05-06)
27
+
28
+ **性能优化发布**
29
+
30
+ #### ✨ 新增功能
31
+
32
+ - **性能优化工具** (`performanceUtils.ts`)
33
+ - `debounce()` - 带 `cancel()`/`flush()` 的防抖函数
34
+ - `throttle()` - 支持 `{ leading, trailing }` 选项的节流函数
35
+ - `getPerformanceConfig()` - ECharts 大数据量自动优化配置
36
+ - `estimateRenderTime()` - 渲染时间预估
37
+ - `DebounceManager` - 批量管理多个防抖函数
38
+
39
+ - **性能优化 Hooks** (`usePerformanceHooks.ts`)
40
+ - `useDebounce()` - 带 cancel/flush 的防抖 Hook
41
+ - `useThrottle()` - 支持 leading/trailing 的节流 Hook
42
+ - `useAnimationFrame()` - 动画帧 Hook
43
+ - `useWindowSizeDebounce()` - 窗口大小防抖 Hook
44
+ - `useScrollPositionDebounce()` - 滚动位置防抖 Hook
45
+ - `useMousePositionThrottle()` - 鼠标位置节流 Hook
46
+
47
+ #### 🔧 优化内容
48
+
49
+ - useMemo 缓存优化(8 处)
50
+ - useCallback 依赖数组修复(5 处)
51
+ - 长函数拆分(drillDown、useChartConnect)
52
+ - 类型安全改进(类型守卫)
53
+
54
+ #### 📈 性能提升
20
55
 
21
- TaroViz v1.10.0 正式发布!新增 **useChartHistory**(Undo/Redo 历史记录)和 **useChartSelection**(数据点选择/高亮)两个专业级 Hook,ErrorBoundary / LazyChart CSS 变量化,ThemeManager 系统主题自动检测。查看 [更新日志](./CHANGELOG.md) 了解详细信息。
56
+ | 场景 | 提升 |
57
+ |------|------|
58
+ | 组件重渲染 | ~30% |
59
+ | 大数据量图表 | ~60% |
60
+ | 高频事件处理 | ~70% |
61
+ | 动画性能 | ~15% |
22
62
 
23
- ## 📚 文档
63
+ ---
64
+
65
+ ## 最新版本 v1.11.4
66
+
67
+ ## 文档
24
68
 
25
69
  - [在线文档](https://agions.github.io/TaroViz/)
26
70
  - [快速开始](https://agions.github.io/TaroViz/guide/)
27
71
  - [API文档](https://agions.github.io/TaroViz/api/)
28
72
  - [示例](https://agions.github.io/TaroViz/examples/)
29
- - [迁移指南](https://agions.github.io/TaroViz/migration/)
30
73
 
31
74
  ## 特性
32
75
 
33
- - 📊 **丰富的图表类型** - 支持折线图、柱状图、饼图、散点图、雷达图、热力图、仪表盘、漏斗图、矩形树图、旭日图、桑基图等多种图表类型
76
+ - 📊 **丰富的图表类型** - 支持折线图、柱状图、饼图、散点图、雷达图、热力图、仪表盘、漏斗图、矩形树图、旭日图、桑基图、箱线图、平行坐标图、K线图、词云图、水球图、树图、关系图等18种图表
34
77
  - 📱 **多端适配支持** - 支持微信小程序、支付宝小程序、百度小程序、字节跳动小程序、HarmonyOS 和 H5
35
- - 🎨 **灵活的主题定制** - 内置 10+ 预设主题,支持自定义主题和动态主题切换
78
+ - 🎨 **灵活的主题定制** - 内置多种预设主题,支持自定义主题和动态主题切换
36
79
  - 📦 **单包架构设计** - 简化依赖管理,方便使用
37
80
  - 🚀 **高性能渲染** - 基于 ECharts 优化,支持懒加载和渐进式渲染
38
81
  - ⚡ **性能分析工具** - 支持帧率监控和内存使用分析
39
- - 🛡️ **错误边界** - 内置 ErrorBoundary 组件,防止图表渲染错误影响应用,支持 CSS 变量主题化
82
+ - 🛡️ **错误边界** - 内置 ErrorBoundary 组件,防止图表渲染错误影响应用
40
83
  - 🪝 **懒加载支持** - 支持图表组件懒加载,优化首屏加载速度
41
84
  - ↩️ **Undo/Redo 历史** - useChartHistory Hook 追踪配置变更,支持 Ctrl+Z/Y 快捷键
42
85
  - 🎯 **数据点选择** - useChartSelection Hook 支持单选/多选/反选,程序化控制数据高亮
43
86
  - 🎯 **标注系统** - 支持 MarkLine、MarkArea 等标注,预设平均线、警戒线等样式
44
87
  - 📤 **导出功能** - 支持导出为 PNG、JPEG、SVG、PDF 等格式
45
- - 🎯 **易用的 React Hooks** - 提供 useChart、useResize、useResponsive、useThemeSwitcher、useChartHistory、useChartSelection 等 Hooks
46
- - **无障碍支持** - 键盘导航(+/- 缩放、方向键平移、Home 重置)、屏幕阅读器数据表
47
- - 🎬 **专业动画** - 符合设计规范的动画时长和缓动曲线,支持 prefers-reduced-motion WCAG 无障碍
48
- - 📖 **完善的类型定义** - 完整的 TypeScript 类型支持,提升开发体验
49
- - 🛠️ **图表配置生成器** - 支持快速生成 ECharts 配置
50
- - 🛠️ **代码示例生成器** - 支持 React、Vue、Vanilla 框架
51
- - 📚 **完善的文档系统** - 包含在线示例和使用指南
52
-
53
- ## 🪝 Hooks
88
+ - 🎬 **专业动画** - 符合设计规范的动画时长和缓动曲线
89
+ - 📖 **完善的类型定义** - 完整的 TypeScript 类型支持
90
+ - **无障碍支持** - 键盘导航和屏幕阅读器支持
54
91
 
55
- TaroViz 提供多个专业级 React Hooks,简化图表状态管理:
56
-
57
- ```typescript
58
- import {
59
- useChart,
60
- useChartHistory, // Undo/Redo 历史记录
61
- useChartSelection, // 数据点选择/高亮
62
- useChartDownload, // 导出 PNG/JPEG/SVG/PDF/CSV/JSON
63
- useChartConnect, // 多图表联动
64
- useDataZoom, // 区域缩放
65
- useAnimation, // 动画控制
66
- useThemeSwitcher, // 主题切换
67
- } from '@agions/taroviz';
92
+ ## 支持的图表类型
68
93
 
69
- // Undo/Redo 示例
70
- const { canUndo, canRedo, undo, redo } = useChartHistory(chartInstance, {
71
- maxHistorySize: 50,
72
- enableKeyboard: true, // Ctrl+Z / Ctrl+Y
73
- });
94
+ TaroViz 支持 18 种图表类型:
74
95
 
75
- // 数据点选择示例
76
- const { selectedPoints, select, deselect, clearSelection } = useChartSelection(chartInstance, {
77
- mode: 'multiple',
78
- });
79
- ```
96
+ | 图表类型 | 描述 | 组件名 |
97
+ | -------- | ---- | ------ |
98
+ | 折线图 | 用于展示数据随时间或类别变化的趋势 | `LineChart` |
99
+ | 柱状图 | 用于比较不同类别的数据大小 | `BarChart` |
100
+ | 饼图 | 用于展示数据占比关系 | `PieChart` |
101
+ | 散点图 | 用于展示两个变量之间的关系 | `ScatterChart` |
102
+ | 雷达图 | 用于展示多维度数据 | `RadarChart` |
103
+ | 热力图 | 用于展示数据密度和分布 | `HeatmapChart` |
104
+ | 仪表盘 | 用于展示单一指标的进度或状态 | `GaugeChart` |
105
+ | 漏斗图 | 用于展示流程中各阶段的数据转化 | `FunnelChart` |
106
+ | 矩形树图 | 用于展示带有层级结构的数据 | `TreeMapChart` |
107
+ | 旭日图 | 用于展示多层级数据的占比关系 | `SunburstChart` |
108
+ | 桑基图 | 用于展示数据流向和转移关系 | `SankeyChart` |
109
+ | 箱线图 | 用于展示数据分布(统计对比) | `BoxplotChart` |
110
+ | 平行坐标图 | 用于展示高维数据各维度关系 | `ParallelChart` |
111
+ | 关系图 | 用于展示实体之间的关系网络 | `GraphChart` |
112
+ | K线图 | 用于展示金融数据的 OHLC | `CandlestickChart` |
113
+ | 词云图 | 用于展示文本关键词频率 | `WordCloudChart` |
114
+ | 水球图 | 用于展示百分比或进度数据 | `LiquidChart` |
115
+ | 树图 | 用于展示层级结构数据 | `TreeChart` |
80
116
 
81
117
  ## 快速开始
82
118
 
@@ -100,7 +136,6 @@ import React from 'react';
100
136
  import { LineChart } from '@agions/taroviz';
101
137
 
102
138
  const App = () => {
103
- // ECharts 配置项
104
139
  const option = {
105
140
  title: {
106
141
  text: '折线图示例'
@@ -132,285 +167,67 @@ const App = () => {
132
167
  export default App;
133
168
  ```
134
169
 
135
- ## 支持的图表类型
136
-
137
- TaroViz 支持 18 种图表类型:
138
-
139
- | 图表类型 | 描述 | 组件名 |
140
- | -------- | ---------------------------------- | ------------------- |
141
- | 折线图 | 用于展示数据随时间或类别变化的趋势 | `LineChart` |
142
- | 柱状图 | 用于比较不同类别的数据大小 | `BarChart` |
143
- | 饼图 | 用于展示数据占比关系 | `PieChart` |
144
- | 散点图 | 用于展示两个变量之间的关系 | `ScatterChart` |
145
- | 雷达图 | 用于展示多维度数据 | `RadarChart` |
146
- | 热力图 | 用于展示数据密度和分布 | `HeatmapChart` |
147
- | 仪表盘 | 用于展示单一指标的进度或状态 | `GaugeChart` |
148
- | 漏斗图 | 用于展示流程中各阶段的数据转化 | `FunnelChart` |
149
- | 矩形树图 | 用于展示带有层级结构的数据 | `TreeMapChart` |
150
- | 旭日图 | 用于展示多层级数据的占比关系 | `SunburstChart` |
151
- | 桑基图 | 用于展示数据流向和转移关系 | `SankeyChart` |
152
- | 箱线图 | 用于展示数据分布(统计对比) | `BoxplotChart` |
153
- | 平行坐标图 | 用于展示高维数据各维度关系 | `ParallelChart` |
154
- | 关系图 | 用于展示实体之间的关系网络 | `GraphChart` |
155
- | K线图 | 用于展示金融数据的 OHLC | `CandlestickChart` |
156
- | 词云图 | 用于展示文本关键词频率 | `WordCloudChart` |
157
- | 水球图 | 用于展示百分比或进度数据 | `LiquidChart` |
158
- | 树图 | 用于展示层级结构数据 | `TreeChart` |
159
-
160
- ## 架构说明
161
-
162
- TaroViz 采用单包架构设计,包含以下核心模块:
163
-
164
- | 模块 | 描述 |
165
- | -------- | -------------------------------------- |
166
- | core | 核心功能和类型定义 |
167
- | adapters | 多平台适配器,处理不同平台的差异 |
168
- | charts | 各种图表组件的实现 |
169
- | hooks | React Hooks,提供便捷的状态管理 |
170
- | themes | 主题系统,支持多种内置主题和自定义主题 |
171
- | utils | 工具函数和数据处理工具 |
170
+ ## Hooks
172
171
 
173
- ## 详细示例
174
-
175
- ### 折线图
172
+ TaroViz 提供多个专业级 React Hooks:
176
173
 
177
174
  ```typescript
178
- import React from 'react';
179
- import { LineChart } from '@agions/taroviz';
180
-
181
- const LineChartDemo = () => {
182
- const option = {
183
- title: {
184
- text: '销售趋势'
185
- },
186
- tooltip: {
187
- trigger: 'axis'
188
- },
189
- legend: {
190
- data: ['线上', '线下']
191
- },
192
- xAxis: {
193
- type: 'category',
194
- boundaryGap: false,
195
- data: ['1月', '2月', '3月', '4月', '5月', '6月']
196
- },
197
- yAxis: {
198
- type: 'value'
199
- },
200
- series: [
201
- {
202
- name: '线上',
203
- type: 'line',
204
- data: [120, 200, 150, 80, 70, 110],
205
- smooth: true
206
- },
207
- {
208
- name: '线下',
209
- type: 'line',
210
- data: [90, 150, 120, 100, 80, 130],
211
- smooth: true
212
- }
213
- ]
214
- };
215
-
216
- return (
217
- <LineChart
218
- option={option}
219
- width="100%"
220
- height={400}
221
- theme="dark"
222
- autoResize={true}
223
- />
224
- );
225
- };
226
-
227
- export default LineChartDemo;
175
+ import {
176
+ useChart,
177
+ useChartHistory, // Undo/Redo 历史记录
178
+ useChartSelection, // 数据点选择/高亮
179
+ useChartDownload, // 导出 PNG/JPEG/SVG/PDF/CSV/JSON
180
+ useChartConnect, // 多图表联动
181
+ useDataZoom, // 区域缩放
182
+ useAnimation, // 动画控制
183
+ useThemeSwitcher, // 主题切换
184
+ usePerformance, // 性能监控
185
+ useDataTransform, // 数据转换
186
+ // v1.11.5 新增
187
+ useDebounce, // 防抖 Hook
188
+ useThrottle, // 节流 Hook
189
+ useAnimationFrame, // 动画帧 Hook
190
+ useWindowSizeDebounce, // 窗口大小防抖 Hook
191
+ } from '@agions/taroviz';
228
192
  ```
229
193
 
230
- ### 饼图
194
+ ### Undo/Redo 示例
231
195
 
232
196
  ```typescript
233
- import React from 'react';
234
- import { PieChart } from '@agions/taroviz';
235
-
236
- const PieChartDemo = () => {
237
- const option = {
238
- title: {
239
- text: '销售渠道分布',
240
- left: 'center'
241
- },
242
- tooltip: {
243
- trigger: 'item'
244
- },
245
- legend: {
246
- orient: 'vertical',
247
- left: 'left'
248
- },
249
- series: [
250
- {
251
- name: '销售渠道',
252
- type: 'pie',
253
- radius: '50%',
254
- data: [
255
- { value: 350, name: '线上商城' },
256
- { value: 250, name: '线下门店' },
257
- { value: 200, name: '代理商' },
258
- { value: 150, name: '其他' }
259
- ],
260
- emphasis: {
261
- itemStyle: {
262
- shadowBlur: 10,
263
- shadowOffsetX: 0,
264
- shadowColor: 'rgba(0, 0, 0, 0.5)'
265
- }
266
- }
267
- }
268
- ]
269
- };
270
-
271
- return (
272
- <PieChart
273
- option={option}
274
- width={400}
275
- height={400}
276
- />
277
- );
278
- };
279
-
280
- export default PieChartDemo;
197
+ const { canUndo, canRedo, undo, redo } = useChartHistory(chartInstance, {
198
+ maxHistorySize: 50,
199
+ enableKeyboard: true, // Ctrl+Z / Ctrl+Y
200
+ });
281
201
  ```
282
202
 
283
- ### 散点图
203
+ ### 数据点选择示例
284
204
 
285
205
  ```typescript
286
- import React from 'react';
287
- import { ScatterChart } from '@agions/taroviz';
288
-
289
- const ScatterChartDemo = () => {
290
- const option = {
291
- title: {
292
- text: '身高体重分布'
293
- },
294
- xAxis: {
295
- name: '身高 (cm)',
296
- type: 'value'
297
- },
298
- yAxis: {
299
- name: '体重 (kg)',
300
- type: 'value'
301
- },
302
- series: [
303
- {
304
- type: 'scatter',
305
- data: [
306
- [161.2, 51.6],
307
- [167.5, 59.0],
308
- [159.5, 49.2],
309
- [157.0, 63.0],
310
- [155.8, 53.6],
311
- [170.0, 59.0],
312
- [159.1, 47.6],
313
- [166.0, 69.8],
314
- [176.2, 66.8],
315
- [160.2, 75.2]
316
- ]
317
- }
318
- ]
319
- };
320
-
321
- return (
322
- <ScatterChart
323
- option={option}
324
- width="100%"
325
- height={400}
326
- />
327
- );
328
- };
329
-
330
- export default ScatterChartDemo;
206
+ const { selectedPoints, select, deselect, clearSelection } = useChartSelection(chartInstance, {
207
+ mode: 'multiple',
208
+ });
331
209
  ```
332
210
 
333
- ## 本地开发
334
-
335
- ```bash
336
- # 克隆仓库
337
- git clone https://github.com/Agions/TaroViz.git
338
-
339
- # 安装依赖
340
- pnpm install
341
-
342
- # 启动开发服务
343
- pnpm dev
344
-
345
- # 构建
346
- pnpm build
211
+ ## 架构说明
347
212
 
348
- # 运行测试
349
- pnpm test
213
+ TaroViz 采用单包架构设计,包含以下核心模块:
350
214
 
351
- # 生成 API 文档
352
- pnpm run docs:api
353
- ```
215
+ | 模块 | 描述 |
216
+ | ---- | ---- |
217
+ | `core` | 核心组件(BaseChart、Annotation)、类型定义、主题系统 |
218
+ | `adapters` | 多平台适配器(H5、微信小程序、支付宝、百度、字节跳动、HarmonyOS等) |
219
+ | `charts` | 18种图表组件实现 |
220
+ | `hooks` | React Hooks(useChart、useChartHistory、useChartSelection等14个) |
221
+ | `core/themes` | 主题系统(内置主题、自定义主题、ThemeManager) |
222
+ | `core/utils` | 工具函数(导出、性能分析、下钻、性能优化等) |
354
223
 
355
224
  ## 技术栈
356
225
 
357
- - [Taro](https://taro.jd.com/) - 多端统一开发框架
358
- - [ECharts](https://echarts.apache.org/zh/index.html) - 强大的图表库
359
- - [React](https://reactjs.org/) - 用户界面库
360
- - [TypeScript](https://www.typescriptlang.org/) - 类型系统
361
- - [pnpm](https://pnpm.io/) - 高效的包管理器
362
- - [Webpack](https://webpack.js.org/) - 构建工具
363
- - [Jest](https://jestjs.io/) - 测试框架
364
- - [Cypress](https://www.cypress.io/) - 端到端测试工具
365
-
366
- ## 兼容性
367
-
368
- | 平台 | 支持情况 |
369
- | -------------- | ----------- |
370
- | 微信小程序 | ✅ 支持 |
371
- | 支付宝小程序 | ✅ 支持 |
372
- | 百度小程序 | ✅ 支持 |
373
- | 字节跳动小程序 | ✅ 支持 |
374
- | HarmonyOS | ✅ 支持 |
375
- | H5 | ✅ 支持 |
376
- | React Native | ⚠️ 部分支持 |
377
-
378
- ## 贡献指南
379
-
380
- 我们欢迎任何形式的贡献,包括但不限于:
381
-
382
- - 提交问题和建议
383
- - 改进文档
384
- - 修复 bug
385
- - 添加新功能
386
- - 优化性能
387
-
388
- 请查看 [贡献指南](./CONTRIBUTING.md) 了解详细信息。
389
-
390
- ## 更新日志
391
-
392
- 查看 [CHANGELOG.md](./CHANGELOG.md) 了解详细的更新历史。
393
-
394
- ## 许可证
395
-
396
- [MIT License](./LICENSE) © 2025 Agions
397
-
398
- ## 支持
399
-
400
- 如果您在使用过程中遇到问题,可以通过以下方式获取帮助:
401
-
402
- - [GitHub Issues](https://github.com/Agions/TaroViz/issues) - 提交问题和建议
403
- - [在线文档](https://agions.github.io/TaroViz/) - 查看详细文档
404
- - [示例](https://agions.github.io/TaroViz/examples/) - 参考使用示例
405
- - [贡献指南](https://agions.github.io/TaroViz/contributing/) - 了解如何贡献代码
406
-
407
- ## 致谢
408
-
409
- 感谢所有为 TaroViz 做出贡献的开发者!
226
+ - **框架**: Taro 3.x / React 18.x
227
+ - **图表库**: ECharts 5.4.x
228
+ - **构建工具**: Webpack 5 + TypeScript (strict mode)
229
+ - **多端支持**: 微信小程序、支付宝小程序、百度小程序、字节跳动小程序、HarmonyOS、H5
410
230
 
411
- ## 相关链接
231
+ ## License
412
232
 
413
- - [Taro 官网](https://taro.jd.com/)
414
- - [ECharts 官网](https://echarts.apache.org/zh/index.html)
415
- - [GitHub 仓库](https://github.com/Agions/TaroViz)
416
- - [npm 包](https://www.npmjs.com/package/@agions/taroviz)
233
+ MIT