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

 更新时间:2020年08月03日 08:54:24   作者:淚雨  
这篇文章主要介绍了Vue解决echart在element的tab切换时显示不正确问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

最近在项目中遇到了这种情况,需要在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切换时显示不正确问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • el-tooltip根据条件控制显示的示例代码

    el-tooltip根据条件控制显示的示例代码

    这篇文章主要介绍了el-tooltip根据条件控制显示的示例代码,包括列表型和树状图型,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-12-12
  • 解决elementUI中el-tree树形结构中节点过滤的问题

    解决elementUI中el-tree树形结构中节点过滤的问题

    这篇文章主要介绍了解决elementUI中el-tree树形结构中节点过滤的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • Vue监视数据的原理详解

    Vue监视数据的原理详解

    这篇文章主要为大家详细介绍了Vue监视数据的原理,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 如何给element添加一个抽屉组件的方法步骤

    如何给element添加一个抽屉组件的方法步骤

    这篇文章主要介绍了如何给element添加一个抽屉组件的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • vue中为何方法要写在methods的里面

    vue中为何方法要写在methods的里面

    这篇文章主要介绍了vue中为何方法要写在methods的里面,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 在Vue3中使用CodeMirror插件的方法详解

    在Vue3中使用CodeMirror插件的方法详解

    CodeMirror是一个功能强大的Web代码编辑器,广泛应用于各种Web应用中,在Vue3项目中集成CodeMirror,可以显著提升代码编辑和展示的用户体验,本文将结合实际案例,详细介绍在Vue3中使用CodeMirror插件的方法,需要的朋友可以参考下
    2024-12-12
  • Vue 删除和增加自定义组件实战教程

    Vue 删除和增加自定义组件实战教程

    Vue.js是一种流行的JavaScript框架,用于构建交互式的Web应用程序,在Vue.js中,我们可以通过动态地增加和删除组件来实现动态页面的构建和更新,本文介绍Vue 删除和增加自定义组件实战教程,感兴趣的朋友一起看看吧
    2024-08-08
  • 使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite导入图片路径错乱问题排查及解决

    使用vue3+vite开发的时候,导入svg图片时,同一个文件夹下的文件,其中一个路径正常解析,另一个不行,更改文件名之后,该图片文件就可以正常解析了,本文给大家介绍了使用vue3+vite导入图片路径错乱问题排查及解决,需要的朋友可以参考下
    2024-03-03
  • 浅谈vue-props的default写不写有什么区别

    浅谈vue-props的default写不写有什么区别

    这篇文章主要介绍了浅谈vue-props的default写不写有什么区别,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue3中pinia的使用方法

    vue3中pinia的使用方法

    Pinia是Vue3的状态管理工具,安装后在入口文件引入,定义store并在组件中使用,本文就来介绍一下vue3中pinia的使用方法,感兴趣的可以了解一下
    2024-10-10

最新评论