1.为了保证打包的体积是最小的,我们可以采用按需加载我们所用到的echarts图表
先下载echarts
cnpm install echarts --save
2.新建一个src/echarts/index.js文件,使用 ECharts 提供的按需引入的接口来打包必须的组件
注意:ECharts 按需引入的时候不再提供任何渲染器,所以需要选择引入 CanvasRenderer
或者 SVGRenderer
作为渲染器。这样的好处是假如你只需要使用 svg 渲染模式,打包的结果中就不会再包含无需使用的 CanvasRenderer
模块。
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from 'echarts/core';
import 'echarts/lib/component/legend'
// 引入柱状图图表,图表后缀都为 Chart
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import {
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent
} from 'echarts/components';
// 标签自动布局、全局过渡动画等特性
import {LabelLayout, UniversalTransition} from 'echarts/features';
// 引入 Canvas 渲染器,注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
import {CanvasRenderer} from 'echarts/renderers';
// **引入组件 都是以Chart结尾 关键 我这里只用到了折线图, 如果要引入饼状图 PieChart
import {LineChart} from 'echarts/charts';
// 注册必须的组件
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
DatasetComponent,
TransformComponent,
LineChart,
LabelLayout,
UniversalTransition,
CanvasRenderer
]);
module.exports = {
echarts
}
3. 在main.js中全局挂载
import { echarts } from "./echarts/index";
Vue.prototype.$echarts = echarts
4.在页面中使用
<template>
<div class="about">
<div class="myChart" id="myChart"></div>
</div>
</template>
<script>
export default {
name: "about",
data() {
return {};
},
mounted() {
this.init_chart();
},
methods: {
init_chart() {
let myChart = this.$echarts.init(document.getElementById("myChart"));
myChart.setOption({
xAxis: {
type: "category",
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
},
yAxis: {
type: "value",
},
series: [
{
data: [150, 230, 224, 218, 135, 147, 260],
type: "line",
},
],
});
},
},
};
</script>
<style scoped lang="less">
.about {
width: 100%;
height: 100%;
.myChart {
width: 30%;
height: 30%;
}
}
</style>