解决Vue3 echarts v-show无法重新渲染的问题

 更新时间:2023年09月11日 14:12:14   作者:woflyoycm  
这篇文章主要介绍了Vue3 echarts v-show无法重新渲染的问题,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Vue3 echarts v-show无法重新渲染的问题

部分html代码如下

<el-empty class="chart-small" v-if="!dataList || !dataList.length" description="没有数据"/>
<div class="chart-small" ref="dataBarDom" v-show="dataList && dataList.length">

部分js代码如下

这里需要引入nextTick方法

import {ref, onMounted, reactive, nextTick} from "vue";
onMounted(async ()=>{
    getData()
})
// echarts相关
const dataBarDom = ref()//关联图标div的ref
let dataBar = null
// 需要显示的数据(有数据显示,没有数据不显示)
const dataList=ref([])
const getData=async ()=>{
    // 从后台获取需要渲染的数据
    dataList.value=await getDataFromDb()
    if(dataList.value.length){
        showChart.value=true
        nextTick(() => {
            dataBar= echarts.init(dataBarDom.value)
            //...以下省略渲染echart的代码
        })
    }else{
        showChart.value=false
    }
}

nextTick方法之后(Dom重新渲染)再去调用echarts图标的生成方法即可

vue3线上环境组件重新渲染echarts图表无法正常显示问题

一、echarts在vue3的使用问题

环境:

Vue3 版本

echarts 5.3.2版本

  "core-js": "^3.8.3",
    "echarts": "^5.3.2",
    "element-plus": "^2.0.4",
    "vue": "^3.2.13",
    "vue-router": "^4.0.13",
    "vue-ueditor-wrap": "^3.0.8"

问题描述:

线上环境vue组件第一次渲染时echarts图表可以正常渲染展示,但是第二次进入组件时(组件重新渲染)echarts无法正常渲染展示。

升级echarts5后发现的问题。

排查:

通过检查dom发现虽然组件第二次重新渲染时,第一次组件渲染生成的echarts实列依然存在(未销毁)导致第二次组件渲染但是echarts无法成功渲染展示

解决方案:

在组件每次渲染时都执行一次echants实列销毁操作。

目前还没找到更好的解决方法,至少目前可行。

二、解决方案1

      // 基于准备好的dom,初始化echarts实例
      echarts.init(document.getElementById("monthCollect")).dispose();
      var myChart = echarts.init(document.getElementById("monthCollect"));
      myChart.setOption()

三、解决方案2

// 取得Dom
var main=document.getDocumentByID()
//先获取dom实例,执行销毁
let existInstance = echarts.getInstanceByDom(main);
if (existInstance) {
    if (true) {
        echarts.dispose(chartStudent);
    }
}
// 初始化&配置設定
let mychart = echarts.init(main);
mychar.setOption({....});

到此这篇关于Vue3 echarts v-show无法重新渲染的问题的文章就介绍到这了,更多相关Vue3 echarts v-show无法重新渲染内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • element表格变化后自动刷新的两种方案

    element表格变化后自动刷新的两种方案

    本文主要介绍了element表格变化后自动刷新的两种方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Vitepress的文档渲染基础教程

    Vitepress的文档渲染基础教程

    这篇文章主要为大家介绍了Vitepress的文档渲染基础教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-10-10
  • Vue中子组件不能修改父组件传来的Prop值的原因分析

    Vue中子组件不能修改父组件传来的Prop值的原因分析

    在Vue中,父子组件之间通过Prop和Event实现了数据的双向绑定,但是,Vue设计者为什么不允许子组件修改父组件传递的Prop呢,本文就来带大家探究为什么子组件不能修改Prop,需要的朋友可以参考下
    2023-06-06
  • vue forEach循环数组拿到自己想要的数据方法

    vue forEach循环数组拿到自己想要的数据方法

    今天小编就为大家分享一篇vue forEach循环数组拿到自己想要的数据方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-09-09
  • electron打包中的巨坑解决记录

    electron打包中的巨坑解决记录

    这篇文章主要为大家介绍了electron打包中的巨坑解决记录,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 使用vue脚手架(vue-cli)搭建一个项目详解

    使用vue脚手架(vue-cli)搭建一个项目详解

    这篇文章主要介绍了vue脚手架(vue-cli)搭建项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • element中一个单选框radio时的选中和取消代码详解

    element中一个单选框radio时的选中和取消代码详解

    这篇文章主要给大家介绍了关于element中一个单选框radio时的选中和取消的相关资料,文中通过图文以及代码示例介绍的非常详细,对大家的学习或者工作具有一定的参考价值,需要的朋友可以参考下
    2023-09-09
  • vue封装图片滑块验证组件的方法

    vue封装图片滑块验证组件的方法

    这篇文章主要为大家详细介绍了vue封装图片滑块验证组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • vue-cli中的图片资源存放位置详解

    vue-cli中的图片资源存放位置详解

    这篇文章主要介绍了vue-cli中的图片资源存放位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue中清除定时器的方法实例详解

    vue中清除定时器的方法实例详解

    很多情况下,进入和退出vue界面,都没有清除定时器,从而导致有很多定时器一起工作,这样肯定是不行的,下面这篇文章主要给大家介绍了关于vue中清除定时器的方法,需要的朋友可以参考下
    2023-02-02

最新评论