React 封装 echarts 组件

312 阅读1分钟

Docs

封装思路

  • 目的是封装一个容器型的 echarts 组件。
  • 一些必要的参数,图表数据源、echarts宽高、渲染方式由父组件传入
  • 考虑不同业务要求,需要通过 echarts 实例上处理不同事件。所以子组件需要传递 echarts 实例到父组件。因此组件封装采用 forwardRef 的方式。

封装步骤分析

  1. echarts 定义系列类型和组件的TS类型(ComposeOption)
    • 基础组件
    • 图表组件
    • 系列类型
    • echarts 基础类型
    • echarts 图表类型 ComposeOption
  2. echarts 注册必须的和可选的组件
    • 得到一个基础的 echarts 配置
  3. 封装 echarts 组件
    • 组件封装成 forwardRef 类型
    • 定义入参 props 和出参 ref 的类型
    • 定义 echartsRef、echartsInstance 状态
    • echarts 组件初始化

      影响因素: props.options、ref

      • echarts.getInstanceByDom
      • echarts.getInstanceByDom 获取失败下进行 echart.init
    • 对父组件暴露实例
      • forwardRef
      • useImperativeHandle 只暴露 echarts 实例给父组件
    • 窗口变化监听

      影响因素: props.options

      • 重新设置窗口 resize 事件监听,重新适配窗口,开启过渡动画
    • 监听窗口位置参数

      影响因素: props.height、props.width

      • 重新适配窗口,开启过渡动画

封装实例

原创文章转载: brownant.top/docs/fullst…