解决vue一个页面中复用同一个echarts组件的问题


Posted in Javascript onJuly 19, 2020

因为页面中要用echarts图表的地方比较多,所以封装了组件,方便复用,如图:

我需要这样一个饼图,并且接下来在很多次地方要用到。

解决vue一个页面中复用同一个echarts组件的问题

直接复制官网的代码,再改改数据,需要用的时候直接拿来用。

但是接下来出现了一个问题:如果我在同一个页面多次使用这个组件,图表将不能正常显示。分析了一下, echarts通过id获取对象

// 基于准备好的dom,初始化echarts实例

var myChart = echarts.init(document.getElementById('main'));

当封装为组件使用的时候,id固定,同一个页面多次出现相同id,所以不能正常显示。

所以想出来以下解决方案:

举个栗子,如果我需要在一个页面中使用该组件两次,

在组件的data中,另外赋一个变量,暂且定为type。在父组件的data中,第一个图标的数据pieData1中添加一个type:1,第二个添加一个type:2

pieData1:{
 type: 1,
 title: '失败次数',
 list:[
  {value:335, name:'502 Bad Gateway'},
  {value:310, name:'404 Not Found'},
  {value:234, name:'无法连接服务器'},
  {value:135, name:'请求超时'},
  {value:1548, name:'Trace LOSS'},
 ],
 pieStyle: {
  width: '400px',
  height: '400px',
  float: 'right'
 }
 },
 
 pieData2:{
 type: 2,
 title: '失败次数',
 list:[
  {value:335, name:'502 Bad Gateway'},
  {value:310, name:'404 Not Found'},
  {value:234, name:'无法连接服务器'},
  {value:135, name:'请求超时'},
  {value:1548, name:'Trace LOSS'},
 ],
 pieStyle: {
  width: '400px',
  height: '400px',
  float: 'right'
 }
 }

接下来改需要在同一个vue页面中用两次的子组件:

html:

<div id="demo1" :style="pieStyle" v-if="pieData.type==1"></div>

<div id="demo2" :style="pieStyle" v-if="pieData.type==2"></div>

js:

var myPie 
 if(this.pieData.type==1){
 myPie = echarts.init(document.getElementById("demo1"));
 }else if(this.pieData.type==2){
 myPie = echarts.init(document.getElementById("demo2"));
 }

好了,问题解决了,效果图如下:

解决vue一个页面中复用同一个echarts组件的问题

如果想到其它方法再补充。

补充知识:vue中,封装的Echart组件被同一个页面多次调用,数据被覆盖问题解决办法。

大概率是echarts init有问题,是不是用class或id选择器选择元素来init了

错误版本:

解决vue一个页面中复用同一个echarts组件的问题

解决vue一个页面中复用同一个echarts组件的问题

正确版本:

解决vue一个页面中复用同一个echarts组件的问题

解决vue一个页面中复用同一个echarts组件的问题

以上这篇解决vue一个页面中复用同一个echarts组件的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript Archive Network 集合
May 12 Javascript
Javascript模块模式分析
May 16 Javascript
js中parseFloat(参数1,参数2)定义和用法及注意事项
Jan 27 Javascript
js获得指定控件输入光标的坐标兼容IE,Chrome,火狐等多种主流浏览器
May 21 Javascript
详解javascript的变量与标识符
Jan 04 Javascript
jquery拖拽排序简单实现方法(效果增强版)
Feb 16 Javascript
浅析JavaScript函数的调用模式
Aug 10 Javascript
ES6中参数的默认值语法介绍
May 03 Javascript
JavaScript使用readAsDataUrl方法预览图片
May 10 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
Sep 13 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
Oct 12 Javascript
谈谈React中的Render Props模式
Dec 06 Javascript
浅谈vue单页面中有多个echarts图表时的公用代码写法
Jul 19 #Javascript
echarts.js 动态生成多个图表 使用vue封装组件操作
Jul 19 #Javascript
JavaScript中reduce()的5个基本用法示例
Jul 19 #Javascript
JS中作用域以及变量范围分析
Jul 18 #Javascript
JS中的变量作用域(console版)
Jul 18 #Javascript
js里面的变量范围分享
Jul 18 #Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
Jul 18 #Javascript
You might like
php高级编程-函数-郑阿奇
2011/07/04 PHP
在PHP中设置、使用、删除Cookie的解决方法
2013/05/06 PHP
php短网址和数字之间相互转换的方法
2015/03/13 PHP
PHP中key和current,next的联合运用实例分析
2016/03/29 PHP
javascript的函数
2007/01/31 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
用JavaScript对JSON进行模式匹配(Part 1-设计)
2010/07/17 Javascript
如何将网页表格内容导入excel
2014/02/18 Javascript
JavaScript程序员应该知道的45个实用技巧
2014/03/04 Javascript
javascript去除字符串左右两端的空格
2015/02/05 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
vue组件发布到npm简单步骤
2017/11/30 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
2019/04/19 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
layui prompt 设置允许空白提交的方法
2019/09/24 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
2020/08/05 Javascript
Ant Design moment对象和字符串之间的相互转化教程
2020/10/27 Javascript
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
Python的组合模式与责任链模式编程示例
2016/02/02 Python
python实现电子书翻页小程序
2019/07/23 Python
python处理document文档保留原样式
2019/09/23 Python
python实现全排列代码(回溯、深度优先搜索)
2020/02/26 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
python三引号如何输入
2020/07/06 Python
Python页面加载的等待方式总结
2021/02/28 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
计算机网络毕业生自荐信
2013/10/01 职场文书
自我推荐书
2013/12/04 职场文书
西安交大自主招生自荐信
2014/01/27 职场文书
部门2014年度工作总结
2014/11/12 职场文书