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 相关文章推荐
js多级树形弹出一个小窗口层(非常好用)实例代码
Mar 19 Javascript
php和js对数据库图片进行等比缩放示例
Apr 28 Javascript
jQuery图片切换插件jquery.cycle.js使用示例
Jun 16 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
Jun 04 Javascript
jquery获取select选中值的方法分析
Dec 22 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
Jun 24 Javascript
图解prototype、proto和constructor的三角关系
Jul 31 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
Mar 07 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
Jun 26 Javascript
Bootstrap与Angularjs的模态框实例代码
Aug 03 Javascript
关于axios不能使用Vue.use()浅析
Jan 12 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
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
用客户端js实现带省略号的分页
2013/04/27 Javascript
jquery 页面滚动到底部自动加载插件集合
2014/01/31 Javascript
Jquery在指定DIV加载HTML示例代码
2014/02/17 Javascript
JS实现静止元素自动移动示例
2014/04/14 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
js实现正则匹配中文标点符号的方法
2015/12/23 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
通用无限极下拉菜单的实现代码
2016/05/31 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
vue resource发送请求的几种方式
2019/09/30 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Python configparser模块常用方法解析
2020/05/22 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
html5将图片转换成base64的实例代码
2016/09/21 HTML / CSS
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
英国网络托管和域名领导者:Web Hosting UK
2017/10/15 全球购物
楼面部长岗位职责范本
2014/02/14 职场文书
2014两会优秀的心得体会范文
2014/03/17 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
pytorch实现线性回归以及多元回归
2021/04/11 Python
html中显示特殊符号(附带特殊字符对应表)
2021/06/21 HTML / CSS
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis