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 相关文章推荐
Jquery遍历Json数据的方法
Apr 20 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
Dec 17 Javascript
前端js实现文件的断点续传 后端PHP文件接收
Oct 14 Javascript
微信小程序 教程之WXML
Oct 18 Javascript
canvas实现粒子时钟效果
Feb 06 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
vue2单元测试环境搭建
May 24 Javascript
JS获取子节点、父节点和兄弟节点的方法实例总结
Jul 06 Javascript
关于RxJS Subject的学习笔记
Dec 05 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
Jul 09 Javascript
使用layui前端框架弹出form表单以及提交的示例
Oct 25 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 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之PHP语法学习笔记1
2006/12/17 PHP
PHP 函数学习简单小结
2010/07/08 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
Ionic3 UI组件之autocomplete详解
2017/06/08 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
vue 开发一个按钮组件的示例代码
2018/03/27 Javascript
详解Node.js 中使用 ECDSA 签名遇到的坑
2018/11/26 Javascript
详解在微信小程序的JS脚本中使用Promise来优化函数处理
2019/03/06 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
用python实现将数组元素按从小到大的顺序排列方法
2018/07/02 Python
详解python读取image
2019/04/03 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python定义函数实现累计求和操作
2020/05/03 Python
Python如何爬取51cto数据并存入MySQL
2020/08/25 Python
小学教师的个人自我鉴定
2013/10/24 职场文书
秋季运动会稿件
2014/01/30 职场文书
中学自我评价
2014/01/31 职场文书
承诺书怎么写
2014/03/26 职场文书
青春飞扬演讲稿
2014/09/11 职场文书
先进个人事迹材料
2014/12/29 职场文书
幼儿教师辞职信范文
2015/03/02 职场文书
研究生导师推荐信
2015/03/25 职场文书
工程部岗位职责范本
2015/04/11 职场文书
学校安全管理制度
2015/08/06 职场文书
Java 泛型详解(超详细的java泛型方法解析)
2021/07/02 Java/Android
WINDOWS下安装mysql 8.x 的方法图文教程
2022/04/19 MySQL
使用Django框架创建项目
2022/06/10 Python
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android