Vue循环渲染:使用echarts展示多个相同图表
46 浏览量
更新于2024-08-29
收藏 74KB PDF 举报
"在Vue应用中,经常遇到需要在同一个页面上展示多个相同但数据不同的ECharts图表,例如展示多个仓库或设备的数据对比。本文将介绍如何通过Vue的`v-for`指令循环渲染多个ECharts图表,以实现这样的功能。
在模板部分,使用`v-for`循环遍历数据列表,并在每个迭代中创建一个包含`roseChart`类的`div`元素。关键在于,这里使用了类(class)而不是ID(id),因为ID应该是唯一的,而我们在循环中需要多个相同的类名。
```html
<template>
<div class="projectCost">
<div class="container">
<div class="wrapper" v-for="(item, index) in list" :key="index">
<div class="roseChart"></div>
</div>
</div>
</div>
</template>
```
在`data`对象中,定义了一个`list`数组,包含了多个带有图表数据的对象,例如仓库或设备的费用信息。
```javascript
data() {
return {
list: [
{
id: 1,
price: {
name: '项目一',
resData: [
{ name: '订购费用', value: 12 },
{ name: '饲养费用', value: 18 },
{ name: '实验费用', value: 8 },
{ name: '其他费用', value: 10 },
],
},
},
{
id: 2,
price: {
name: '项目二',
resData: [
{ name: '订购费用', value: 18 },
{ name: '饲养费用', value: 10 },
{ name: '实验费用', value: 20 },
{ name: '其他费用', value: 9 },
],
},
},
],
};
},
```
在`methods`中,定义了一个名为`drawRose`的方法,该方法初始化ECharts实例并设置图表选项。首先,通过`getElementsByClassName`获取所有具有`roseChart`类的元素,然后遍历这些元素,对每一个元素初始化一个ECharts实例,并根据当前索引设置相应的图表数据。
```javascript
methods: {
drawRose() {
const echarts = require('echarts');
const roseCharts = document.getElementsByClassName('roseChart');
for (let i = 0; i < roseCharts.length; i++) {
const myChart = echarts.init(roseCharts[i]);
myChart.setOption({
color: ['#4DFFFD', '#7B3FF6', '#1F6DFE', '#34A6FE'],
title: {
text: this.list[i].price.name,
left: '70',
top: 5,
textStyle: { color: '#333' },
},
// ...
// 其他图表配置项,如series、tooltip等
// ...
});
}
},
},
```
为了确保图表正确显示,你需要在组件的`mounted`生命周期钩子中调用`drawRose`方法,以便在DOM加载完成后初始化ECharts图表。
```javascript
mounted() {
this.drawRose();
},
```
这样,每个`roseChart`类的`div`都将根据对应的`list`数据生成一个ECharts玫瑰图,展示不同项目的费用结构。同时,由于`v-for`的使用,我们可以轻松地扩展这个列表,以显示更多的图表。
总结一下,实现Vue中循环渲染多个相同ECharts图表的关键点包括:
1. 使用`v-for`循环遍历数据列表。
2. 在模板中创建一个具有相同类名的容器,用于放置图表。
3. 在`mounted`生命周期钩子中初始化ECharts图表,并使用`getElementsByClassName`获取所有需要绘制的元素。
4. 遍历这些元素,根据当前索引设置图表数据。
通过这种方式,你可以在Vue项目中灵活地创建和管理多个ECharts图表,展示丰富的数据可视化效果。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2020-10-15 上传
2023-03-31 上传
2020-10-15 上传
2020-11-19 上传
2021-11-23 上传
2020-10-15 上传
weixin_38704870
- 粉丝: 6
- 资源: 1000
最新资源
- 全国江河水系图层shp文件包下载
- 点云二值化测试数据集的详细解读
- JDiskCat:跨平台开源磁盘目录工具
- 加密FS模块:实现动态文件加密的Node.js包
- 宠物小精灵记忆配对游戏:强化你的命名记忆
- React入门教程:创建React应用与脚本使用指南
- Linux和Unix文件标记解决方案:贝岭的matlab代码
- Unity射击游戏UI套件:支持C#与多种屏幕布局
- MapboxGL Draw自定义模式:高效切割多边形方法
- C语言课程设计:计算机程序编辑语言的应用与优势
- 吴恩达课程手写实现Python优化器和网络模型
- PFT_2019项目:ft_printf测试器的新版测试规范
- MySQL数据库备份Shell脚本使用指南
- Ohbug扩展实现屏幕录像功能
- Ember CLI 插件:ember-cli-i18n-lazy-lookup 实现高效国际化
- Wireshark网络调试工具:中文支持的网口发包与分析