之前做得项目有vue2和vue3,使用echarts的方式大同小异,这篇文章就先介绍vue3的用法
可以看官方文档,其实说得很清楚echart官方
npm install echarts --save
由于我得项目中使用到得echart不多,所以这里我引入几个组件即可,缩小项目体积
// 引入 echarts 核心模块,核心模块提供了 echarts 使用必须要的接口。
import * as echarts from "echarts/core";
/** 引入柱状图 + 折线图 + 饼图,图表后缀都为 Chart,一般常用的就这三个,如果还需要其他的,就自行添加 */
import { BarChart, LineChart, PieChart } from "echarts/charts";
// 引入提示框,标题,直角坐标系,数据集,内置数据转换器组件,组件后缀都为 Component
import {
TitleComponent,
TooltipComponent,
GridComponent,
LegendComponent,
} from "echarts/components";
// 标签自动布局
import { LabelLayout, UniversalTransition } from "echarts/features";
// 引入 Canvas 渲染器
import { CanvasRenderer } from "echarts/renderers";
// 注册
echarts.use([
TitleComponent,
TooltipComponent,
GridComponent,
LegendComponent,
LabelLayout,
UniversalTransition,
CanvasRenderer,
BarChart,
LineChart,
PieChart,
]);
export default echarts;
// 引入echarts
import echarts from "./utils/echarts";
//全局注册
app.config.globalProperties.$echarts = echarts
这里我举例环形
<div class="fl" style="width: calc(100% - 130px)">
<div class="canvas source-canvas" ref="source" style="width: 100%"></div>
</div>
let source = ref(null);
let sourceOption = reactive({
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)',
},
legend: {
top: '5%',
left: 'center',
},
series: [
{
name: 'Access From',
type: 'pie',
radius: ['40%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center',
},
emphasis: {
label: {
show: true,
fontSize: 40,
fontWeight: 'bold',
},
},
labelLine: {
show: false,
},
data: [
{ value: 1048, name: 'Search Engine' },
{ value: 735, name: 'Direct' },
{ value: 580, name: 'Email' },
{ value: 484, name: 'Union Ads' },
{ value: 300, name: 'Video Ads' },
],
},
],
});
//引入全局注册的proxy
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
let myChart = proxy.$echarts.init(source.value);
myChart.setOption(sourceOption);
##这样子环形就出来啦,配置那些可以参考官方配置参数