ECharts

5 阅读2分钟

简单记忆

  1. 封装 ECharts 为通用组件,在 onMounted 初始化,setOption 更新数据,监听 resize 加防抖做自适应,组件销毁时 dispose 释放实例,防止内存泄漏。
  2. 优化主要是复用实例、关闭动画、增量更新。
  3. 常见问题是容器没宽高、DOM 没挂载、实例没销毁。

一、项目中你怎么封装 ECharts?

把 ECharts 封装成通用可复用组件

  1. 在 Vue 组件里用 ref 获取容器 DOM。
  2. 在 onMounted 生命周期里初始化图表。
  3. 通过 setOption 渲染配置和数据。
  4. 监听窗口变化(window.resize())做自适应(chart.resize())。
  5. 组件销毁时释放实例,防止内存泄漏。
  6. 支持响应式、loading、数据更新。

二、ECharts 怎么做自适应?

  1. 监听 window 的 resize 事件。
  2. 使用防抖(debounce)优化性能。
  3. 在回调里调用 chart.resize ()。
  4. 保证窗口变化时图表自动适配。

三、组件销毁时必须做什么?

必须销毁 ECharts 实例

  1. 调用 chart.dispose ()。
  2. 清空 resize 监听。
  3. 清空定时器。不销毁会造成内存泄漏,页面越来越卡。

四、ECharts 性能优化(高频)

  1. 复用实例,不要重复 init。
  2. 使用 setOption 增量更新,不重新创建。
  3. 大数据关闭动画:animation: false。
  4. 减少阴影、渐变、多余标签。
  5. 大量数据使用 dataZoom 或分段渲染。
  6. 避免频繁 setOption,做节流防抖。

五、图表不显示 / 白屏原因

  1. 容器 DOM 没有设置宽高
  2. 在 DOM 挂载前就初始化。
  3. 数据格式错误或为空。
  4. 多次初始化导致实例异常。
  5. 路由切换没销毁,实例污染。

六、两个图表如何联动?

  1. 给多个图表设置相同的 group。
  2. 使用 echarts.connect (group) 关联。
  3. 可实现 tooltip、brush、数据联动。

七、海量数据怎么渲染?

  1. 关闭动画。
  2. 数据采样、简化数据。
  3. 使用 dataZoom 只展示可视区域。
  4. 使用 appendData 追加数据。
  5. 避免一次性渲染大量节点。