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