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图标的生成方法即可

相关推荐
m0_58738300几秒前
无人自助拼豆系统落地开发实战指南 核心逻辑实现与部署经验分享
前端·javascript·vue.js·人工智能·经验分享·需求分析
zhaiyy6 分钟前
HTML Popover API 实践
前端·javascript·html
牧艺35 分钟前
SPA 也能像原生 App:View Transitions API 从原理到可上线实战
前端·javascript·css
Dovis(誓平步青云)38 分钟前
现场问题先关闭还是先验收,建筑任务怎样处理依赖
前端·javascript·数据库·mysql·音视频
用户842981424181042 分钟前
压缩 ≠ 加密:前端代码保护的三层实践与踩坑记录
前端·javascript
前端一课1 小时前
别把人生过成一场等待退休的倒计时
前端
.Hypocritical.1 小时前
SpringBoot+Vue 前后端分离项目部署到云服务器
服务器·vue.js·spring boot
CENTER SAYS1 小时前
企业400电话办理全流程详解与材料准备(实操向)
前端·crm
:mnong1 小时前
Web 三维可视化技术对比:ParaView Web vs 本项目 wasm + Three.js
前端·webgl·opengl·opencl·科学可视化
Shirley~~1 小时前
three.js的调试面板工具
前端·3d