Vue中ECharts组件的封装与使用
创作时间:
作者:
@小白创作中心
Vue中ECharts组件的封装与使用
引用
CSDN
1.
https://m.blog.csdn.net/m0_46183499/article/details/136866305
ECharts 是一个基于 JavaScript 的开源可视化库,广泛应用于数据可视化和图表展示。在 Vue 项目中封装 ECharts 组件,可以提高代码复用性和开发效率。本文将详细介绍如何在 Vue 项目中封装 ECharts 组件,让读者能够快速上手并应用到实际项目中。
一、业务场景
在 Vue 项目中使用 ECharts 时,经常会遇到需要多次使用各种图表的情况。为了提高代码复用性和开发效率,我们可以将 ECharts 封装成一个可复用的组件。这样不仅可以避免重复编写相同代码,还能使代码结构更加清晰。
二、具体实现步骤
1. 安装 ECharts
首先需要在项目中安装 ECharts。在终端中运行以下命令:
npm install echarts --save
2. 在 main.js 中引入 ECharts
根据 ECharts 的版本不同,引入方式也有所不同。以下是两种版本的引入方式:
- 5.0 以上版本
import * as echarts from 'echarts'
- 5.0 以下版本
import echarts from 'echarts'
然后将 ECharts 注册到 Vue 的原型上:
Vue.prototype.$echarts = echarts
3. 创建图表组件(Echarts)
创建一个名为 MyCharts 的组件,用于封装 ECharts 的基本功能。组件接收数据源、画布宽度和高度作为 props。
<template>
<div>
<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
<div :id="uuid" :style="style"></div>
</div>
</template>
<script>
export default {
name: "MyCharts",
props: {
dataSource: {
type: Object,
default: null,
require: true
},
canvasWidth: {
type: String,
default: '',
require: true
},
canvasHeight: {
type: String,
default: '',
require: true
},
},
data() {
return {
uuid: undefined,
myChart: null,
}
},
computed: {
style() {
return {
width: this.canvasWidth,
height: this.canvasHeight
}
}
},
created() {
// 时间戳+随机字符
this.uuid = new Date().getTime() + Math.random().toString(32).slice(2, 10)
},
mounted() {
this.init()
},
methods: {
init() {
// 基于准备好的dom,初始化echarts实例
this.myChart = this.$echarts.init(document.getElementById(this.uuid));
// 绘制图表
this.myChart.setOption(this.dataSource);
}
}
}
</script>
<style scoped>
</style>
4. 准备数据源
在 src 目录下新建一个 dataSource.js 文件,用于存放图表的数据源。
export const dataSource2 = {
title: {
text: 'Are you OK?'
},
tooltip: {},
xAxis: {
data: ['魄力', '建议', '先干', '成了', '马拉松', '成败得失']
},
yAxis: {},
series: [
{
name: '小米',
type: 'bar',
data: [60, 45, 52, 38, 49, 55]
}
]
}
export const dataSource = {
title: {
text: '生死看淡,不服就干'
},
tooltip: {},
xAxis: {
data: ['梦想', '坚持', '力量', '美好', '坚韧', '东西']
},
yAxis: {},
series: [
{
name: '雷总',
type: 'bar',
data: [50, 80, 66, 70, 69, 71]
}
]
}
5. 在父组件中使用封装好的图表组件
在需要使用图表的父组件中引入 MyCharts 组件,并传入数据源和画布尺寸。
<template>
<div>
<MyCharts :dataSource="dataSource" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight"></MyCharts>
<MyCharts :dataSource="dataSource2" :canvasWidth="canvasWidth" :canvasHeight="canvasHeight"></MyCharts>
</div>
</template>
<script>
import MyCharts from "@/components/mycharts/MyCharts";
import { dataSource, dataSource2 } from "@/dataSource";
export default {
name: "CrudPage",
components: { MyCharts },
data() {
return {
canvasWidth: '600px',
canvasHeight: '400px',
dataSource: dataSource,
dataSource2: dataSource2
}
},
created() {
},
methods: {
}
}
</script>
<style scoped>
</style>
四、效果展示
通过以上步骤,你已经成功封装并使用了 ECharts 组件。以下是最终的效果展示:
今天的分享就到这里,希望对你有所帮助。欢迎小伙伴们一起交流和探讨!
热门推荐
羊肉、牛肉、南瓜、韭菜——寒性体质的救星!
痛风新认知:大腿刺痛是预警,这些方法助你控制病情
MAFLD全球发病率超30%,多学科协作是治疗关键
提拉米苏在家也能做!超简单😋
提拉米苏的完美食材组合,你知道多少?
客服系统业务连续性管理:保障服务稳定的关键策略
洞察2024 | 险企年内超60次“将帅”调整 变阵因素分化明显
理智型 vs 情绪型:男性离婚后的两种人生
国内首创!深圳龙华构建全覆盖婚姻家庭辅导体系
医生建议:咽炎片配合加湿等8招,轻松应对冬季喉咙干痒
桑葚沙棘梨:秋冬季节缓解喉咙干痒的三味良方
摆脱“有毒关系”:从识别到应对的全面指南
当心这8种“有毒友谊”:从识别到应对的完整指南
忍术、幻术、体术:火影忍者的三大超能力体系
超纤革:引领时尚界材料革命的新型合成材料
波音777长途飞行座位大揭秘:如何选择最舒适的座位?
网络社交平台对人际关系的影响分析
成都嘉祥外国语:从特色课程到教研示范,看这所学校的实力
河南化工厂污染事故敲警钟,企业应如何建立环境应急体系
企业有害物质管理全流程:六大步骤构建ISO认证体系
大腿外侧疼痛当心是阔筋膜张肌损伤,这些方法可缓解
协和医院研究:心理因素显著影响大腿刺痛,多学科诊疗助患者康复
运动后大腿刺痛?两种科学处理原则帮你快速缓解
冬日泰山彩石溪 冰瀑与冰泡绘就梦幻诗章
美股投资全攻略:从零开始的系统指南
未经授权处理人脸信息构成侵权,北京首例AI换脸案宣判
从8分剧集到春节档大片,国产影视作品掀起全民热议
中医降糖有良方:12种中药获科学认证
饱受封建社会的剥削和压迫:细看宋代军匠制度和背后的艰难苦恨
最高法明确:十级伤残赔偿按20年算,双单位连带责任