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

部分html代码如下

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方法

javascript 复制代码
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图标的生成方法即可

相关推荐
宁雨桥1 分钟前
前端设计模式面试题大全
前端·设计模式
Cg136269159744 分钟前
JS函数表示
前端·html
℘团子এ4 分钟前
vue3中,el-table表格固定列后出现表格线段折断的问题
javascript·vue.js·elementui
在屏幕前出油10 分钟前
02. FastAPI——路由
服务器·前端·后端·python·pycharm·fastapi
勿芮介28 分钟前
【大模型应用】在window/linux上卸载OpenClaw
java·服务器·前端
摸鱼仙人~31 分钟前
前端面试手写核心 Cheat Sheet(终极精简版)
前端
馬致远1 小时前
Win7 配置 Vue脚手架
javascript·vue.js·ecmascript
Ashley_Amanda1 小时前
深入浅出Web Dynpro:SAP企业级Web应用开发全面解析
前端
方安乐1 小时前
概念:前端工程化实践
前端