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 相关文章推荐
让iframe子窗体取父窗体地址栏参数(querystring)
Oct 13 Javascript
载入jQuery库的最佳方法详细说明及实现代码
Dec 28 Javascript
JavaScript栏目列表隐藏/显示简单实现
Apr 03 Javascript
js中for in语句的用法讲解
Apr 24 Javascript
利用JQuery写一个简单的异步分页插件
Mar 07 Javascript
基于javascript实现表格的简单操作
May 21 Javascript
js获取新浪天气接口的实现代码
Jun 06 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
JavaScript在控件上添加倒计时功能的实现代码
Jul 04 Javascript
详解使用vuex进行菜单管理
Dec 21 Javascript
mpvue实现微信小程序快递单号查询代码
Apr 03 Javascript
javascript实现电商放大镜效果
Nov 23 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
一个SQL管理员的web接口
2006/10/09 PHP
PHP自动生成表单代码分享
2015/06/19 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
根据地区不同显示时间的javascript代码
2007/08/13 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
js实现屏幕自适应局部代码分享
2015/01/30 Javascript
JavaScript中textRange对象使用方法小结
2015/03/24 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
2016/07/01 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
微信小程序 腾讯地图显示偏差问题解决
2019/07/27 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
基于javascript处理二进制图片流过程详解
2020/06/08 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python socket编程实例详解
2015/05/27 Python
分析Python中解析构建数据知识
2018/01/20 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python3下载抖音视频的完整代码
2019/06/05 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python requests模块cookie实例解析
2020/04/14 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
2020/06/29 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
2014年廉洁自律承诺书
2014/05/26 职场文书
建设单位项目负责人任命书
2014/06/06 职场文书
离婚被告代理词
2015/05/23 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
解决golang 关于全局变量的坑
2021/05/06 Golang
vue动态绑定style样式
2022/04/20 Vue.js