echarts如何定制使用以便于减小打包体积

发布于:2023-01-04 ⋅ 阅读:(603) ⋅ 点赞:(0)

        我们一般使用echarts不会全量引入,因为全量引入会导致包体积过大,首页加载白屏的时长会较长,容易被测试或者产品经理吐槽;所以我们一般会按需引入,这里有两种方式可以按需引入,我们分别说下;

        第一种,是按照官网的,引入核心模块,按需引入需要用到的组件;(下方链接为官网链接,也可以按照官网链接操作)

 Handbook - Apache EChartshttps://echarts.apache.org/handbook/zh/basics/import

        1.1  npm引入  npm install echarts --save

        1.2 按需引入需要用到的组件和模块(下面代码为例子,可以按需增减,基本上都会用到)

// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
// 引入各种图表,图表后缀都为 Chart
import {  LineChart ,ScatterChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系组件,组件后缀都为 Component
import {
 TitleComponent,
  TooltipComponent,
  ToolboxComponent,
  GridComponent,
  LegendComponent,
  AxisPointerComponent,
  DatasetComponent,
  MarkLineComponent
} from "echarts/components";
// 标签自动布局,全局过渡动画等特性
import { LabelLayout, UniversalTransition } from 'echarts/features';
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import { CanvasRenderer } from 'echarts/renderers';
// 注册必须的组件
echarts.use([
  LineChart,
  TitleComponent,
  TooltipComponent,
  ToolboxComponent,
  GridComponent,
  LegendComponent,
  AxisPointerComponent,
  DatasetComponent,
  CanvasRenderer,
  ScatterChart,
  MarkLineComponent
]);

按照此种方式打包之后,我发现即便压缩之后我用到echarts的那个文件1.38M,这个其实我还是不能接受的;所以继续查看官网,想要看看还有什么好的方式去减少这个体积;(这里我不想使用cdn引入,担心cdn不是很稳定);果然,官网还有一个在线定制,可以减少包体积,确切的说就是

在线定制

可自由选择所需图表、坐标系、组件进行打包下载。

注意:打包的源文件来自 jsdelivr CDN,非 Apache 官方源代码和编译产物

上面是官网的说明,我抱着试试的心态,试了一下;

ECharts 在线构建

上面为官网链接,大家可以看下;

1.图表

 

2.坐标系

 

3.组件

 

4.工具集

5.代码压缩

6.svg渲染

 

这里大致有6个选项,第一个是图表,我们只需要勾选我们需要的图表,坐标系,组件等,然后点击确定,会生成一个最小体积的echast.min.js文件,我们放入到项目中引用即可。(我的项目里面echarts文件大致500kb,比第一种方法小了很多)

我是使用的vue框架开发的,所以在index.html那里引入

<script src="./static/lib/echarts.min.js"></script>

一般会把文件放到static下面的lib文件夹;

补充一下,如何使用

在main.js文件里面

Vue.prototype.$echarts = window.echarts

在用到echarts的vue文件里面直接使用即可

 mounted() {

    let myChart = this.$echarts.init(this.$refs.container);

    myChart.setOption(this.option, true);

  }

网络上很多文章写了如何使用echarts,这里不做赘述;主要是讲两种减小echart体积的方法;

以上如果有不正确的地方,欢迎大家指正,谢谢


网站公告

今日签到

点亮在社区的每一天
去签到