Vue解决echart在element的tab切换时显示不正确问题


Posted in Javascript onAugust 03, 2020

最近在项目中遇到了这种情况,需要在tab控件上渲染多个echart图标,然后切换查看时,发现图表的宽度不正确

原因:在页面进行加载时,隐藏的图表找不到对应的div大小,所以默认给了一个大小。所以要做的就是在页面加载时,就对图表进行初始化。

网上的解决方案大多都是监听tab的切换事件,然后再根据切换的页面重新渲染echart组件,比较麻烦。

如下是个人的解决方法:

原理:利用v-if属性,当切换至对应的tab时,设置其v-if的值为true即可,同时设置默认显示的tab

举例如下:

<el-tabs type="card" v-model="tabItem">
 <el-tab-pane name="heart">
  <span slot="label"><icon name="heart" scale="2"></icon>心率</span>
  <baseline ref="heart" :chartData="{}" v-if="'heart' === tabItem"></baseline>
 </el-tab-pane>
 <el-tab-pane name="breath">
  <span slot="label"><icon name="breath" scale="2"></icon>呼吸</span>
  <baseline ref="breath" :chartData="{}" v-if="'breath' === tabItem"></baseline>
 </el-tab-pane>
 <el-tab-pane label="体动" name="move">
  <span slot="label"><icon name="move" scale="2"></icon>体动</span>
  <baseline ref="move" :chartData="{}" v-if="'move' === tabItem"></baseline>
 </el-tab-pane>
</el-tabs>

这里默认tab为心率tab,当切换时,同一时刻只有一个v-if为true,当将其设置为true时,Vue会重新在页面渲染组件,即完成了组件渲染的步骤。

补充知识:有关el-tab-pane中echarts图遇到的问题(element中的Tabs 标签页)

在项目中,遇到了一个奇怪问题:

element中的el-tabs组件,在el-tab-pane引入echarts图标时,刷新时没有图标出现,如果将浏览器窗口缩小一点,就可以展示.

解决方案:

在echarts中加入v-if来解决 (另外,有时我们在项目中用v-show也会出现上述类似情况,将v-show改成v-if试试就可以解决)

<template>
 <el-tabs v-model="activeName" @tab-click="handleClick">
  <el-tab-pane label="用户管理" name="first">用户管理</el-tab-pane>
  <el-tab-pane label="配置管理" name="second">配置管理</el-tab-pane>
  <el-tab-pane label="角色管理" name="third">角色管理</el-tab-pane>
  <el-tab-pane label="定时任务补偿" name="fourth">
    <div class="echartsBox" 
      v-loading="loadingDetail"
      element-loading-spinner="el-icon-loading"
      >
      <echart-line 
      v-if="'fourth' === activeName"  //在这里加上这句话就可以解决上面的问题
      class="CurePicture"
      :category="chartData.category"
      :data="chartData.data"
      :unit="chartData.unit"
      ></echart-line>
     </div>
  </el-tab-pane>
 </el-tabs>
</template>
<script>
import echartLine from "@/components/echarts/line"
 export default {
  components: {
  echartLine
  }, 
  data() {
   return {
    activeName: 'second'
   };
  },
  methods: {
   handleClick(tab, event) {
    console.log(tab, event);
   }
  }
 };
</script>

拿走,不用谢!!!

以上这篇Vue解决echart在element的tab切换时显示不正确问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
window.showModalDialog使用手册
Jan 11 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
Oct 13 Javascript
javascript权威指南 学习笔记之javascript数据类型
Sep 24 Javascript
基于jquery的web页面日期格式化插件
Nov 15 Javascript
JS判断当前日期是否大于某个日期的实现代码
Sep 02 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
vue.js学习笔记:如何加载本地json文件
Jan 17 Javascript
详谈表单重复提交的三种情况及解决方法
Aug 16 Javascript
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
如何选择适合你的JavaScript框架
Nov 20 Javascript
AjaxFileUpload.js实现异步上传文件功能
Apr 19 Javascript
vue使用websocket的方法实例分析
Jun 22 Javascript
js实现点击上传图片并设为模糊背景
Aug 02 #Javascript
jQuery实现雪花飘落效果
Aug 02 #jQuery
原生js+canvas实现贪吃蛇效果
Aug 02 #Javascript
js+canvas实现五子棋小游戏
Aug 02 #Javascript
js实现3D旋转相册
Aug 02 #Javascript
js实现双色球效果
Aug 02 #Javascript
js实现tab栏切换效果
Aug 02 #Javascript
You might like
《Re:从零开始的异世界生活 冰结之绊》
2020/04/09 日漫
php过滤危险html代码
2008/08/18 PHP
php 破解防盗链图片函数
2008/12/09 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
2017/03/31 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
Nigma vs AM BO3 第一场2.13
2021/03/10 DOTA
setInterval 和 setTimeout会产生内存溢出
2008/02/15 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
javascript判断机器是否联网的2种方法
2013/08/09 Javascript
详细介绍8款超实用JavaScript框架
2013/10/25 Javascript
JavaScript实现把数字转换成中文
2015/06/29 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
Node.js复制文件的方法示例
2016/12/29 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
vue-cli脚手架config目录下index.js配置文件的方法
2018/03/13 Javascript
Angular4 Select选择改变事件的方法
2018/10/09 Javascript
跨域解决之JSONP和CORS的详细介绍
2018/11/21 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
在Python中使用__slots__方法的详细教程
2015/04/28 Python
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
django删除表重建的实现方法
2019/08/28 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
浅谈Python 函数式编程
2020/06/20 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
学校社会实践活动总结
2014/07/03 职场文书
领导干部保密承诺书
2014/08/30 职场文书
2014国庆节幼儿园亲子活动方案
2014/09/16 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
因家庭原因离职的辞职信范文
2015/05/12 职场文书
Python时间操作之pytz模块使用详解
2022/06/14 Python