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的弹出框插件
Mar 18 Javascript
javascript的offset、client、scroll使用方法详解
Dec 25 Javascript
Jquery对数组的操作技巧整理
Mar 25 Javascript
jquery实现侧边弹出的垂直导航
Dec 09 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
Mar 04 Javascript
JS+CSS实现仿雅虎另类滑动门切换效果
Oct 13 Javascript
AngularJS 实现点击按钮获取验证码功能实例代码
Jul 13 Javascript
AngularJs导出数据到Excel的示例代码
Aug 11 Javascript
编写React组件项目实践分析
Mar 04 Javascript
Cordova(ionic)项目实现双击返回键退出应用
Sep 17 Javascript
vue实现图片上传功能
May 28 Javascript
JS实现鼠标按下拖拽效果
Jul 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
2016/11/05 PHP
详解thinkphp中的volist标签
2018/01/15 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
javascript的键盘控制事件说明
2008/04/15 Javascript
javascript+xml技术实现分页浏览
2008/07/27 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
2012/10/18 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
JavaScript:Array类型全面解析
2016/05/19 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
原生js jquery ajax请求以及jsonp的调用方法
2017/08/04 jQuery
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
js实现星星打分效果
2020/07/05 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
python转换摩斯密码示例
2014/02/16 Python
python实时监控cpu小工具
2018/06/21 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
在python里从协程返回一个值的示例
2019/02/19 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
wxPython绘图模块wxPyPlot实现数据可视化
2019/11/19 Python
Python如何实现强制数据类型转换
2019/11/22 Python
Python计算机视觉里的IOU计算实例
2020/01/17 Python
对tensorflow中cifar-10文档的Read操作详解
2020/02/10 Python
在pycharm中实现删除bookmark
2020/02/14 Python
Django静态资源部署404问题解决方案
2020/05/11 Python
python matplotlib绘制三维图的示例
2020/09/24 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
西北政法大学自主招生自荐信
2014/01/29 职场文书
国旗下的演讲稿
2014/05/08 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript