怎么正确封装ECharts
本文涉及 : TypeScript、Vue3、 echarts
因为 ECharts 的使用场景及其广阔,并且定制化的场景比较多,所以就不封装可以复用的组件了,在我看来每个组件还是需要一个独立的 option ,这里仅封装更好使用的 echats
目录
|--src
|--components // 组件
|--echarts // echats 封装目录
|--echarts-types.ts // 一些类型
|--library.ts // 为 echats 增加的一些功能
|--useECharts.ts // 主函数
|--EChartsComponents
|--a-echarts.vue // 组件使用
|--App.vue
代码
library.ts
在 library.ts 中集中引入,挂载 echarts 需要用到的组件和功能
import * as echarts from 'echarts/core';
import {
BarChart,
LineChart,
PieChart,
MapChart,
PictorialBarChart,
RadarChart,
ScatterChart
} from 'echarts/charts';
import {
TitleComponent,
TooltipComponent,
GridComponent,
PolarComponent,
AriaComponent,
ParallelComponent,
LegendComponent,
RadarComponent,
ToolboxComponent,
DataZoomComponent,
VisualMapComponent,
TimelineComponent,
CalendarComponent,
GraphicComponent
} from 'echarts/components';
echarts.use([
LegendComponent,
TitleComponent,
TooltipComponent,
GridComponent,
PolarComponent,
AriaComponent,
ParallelComponent,
BarChart,
LineChart,
PieChart,
MapChart,
RadarChart,
PictorialBarChart,
RadarComponent,
ToolboxComponent,
DataZoomComponent,
VisualMapComponent,
TimelineComponent,
CalendarComponent,
GraphicComponent,
ScatterChart
]);
export default echarts;
echarts-types.ts
一些需要使用的类型,在这里规范
export enum RenderType {
SVGRenderer = 'SVGRenderer',
CanvasRenderer = 'SVGRenderer'
}
export enum ThemeType {
Light = 'light',
Default = 'default',
}
useECharts.ts 主要文件
引入需要使用的功能模块,EChartsOption 类型在使用时容易报红,这里暂时用 any
import { onMounted, onUnmounted, Ref, unref } from "vue";
import echarts from "./library";
// import type { EChartsOption } from 'echarts'
import { SVGRenderer, CanvasRenderer } from 'echarts/renderers'
import { RenderType, ThemeType } from './echarts-types'
export function useECharts(elparams: Ref
在组件中的使用
a-echarts.vue 使用,我们现在只需要去找一些 option 就可以实现不同的图表了
这个还不错的网站,有很多示例 PPChart 我们随便拿一个来试试吧,

把配置代码复制到下面,就可以看见效果了
App.vue
