使用element ui的el-tabs切换页面一直不显示echarts,查询发现是切换的时候会不生成dom。
我通过watch监听并渲染dom实现渲染页面
代码如下
watch: {
activeName: function (var1) {
this.$nextTick(() => {
if (var1 === 'charts') {
this.initOneEcharts()
}
})
}
},
<el-tabs v-model="activeName" @tab-click="handleTabChange" style="width: 100%" >
<!--专科专业搜索 -->
<el-tab-pane label="专业历史数据" name="history">
<el-table v-loading="isLoading" stripe
:data="tableData1" ref="table" current-row-key="number">
<el-table-column prop="year" sortable label="年份" align="center" >
</el-table-column>
<el-table-column prop="stuType" sortable label="招生类型" align="center" >
</el-table-column>
<el-table-column prop="score" sortable label="投档线" align="center" >
</el-table-column>
<el-table-column prop="numer" sortable label="招生数量" align="center" >
</el-table-column>
</el-table>
</el-tab-pane>
<!--本科院校搜索 -->
<el-tab-pane label="历史数据图表" name="charts" >
</el-tab-pane>
<div id="charts" style="width: 100%;height: 400px" v-if="activeName==='charts'"></div>
</el-tabs>
通过使用v-if以及 watch函数监听activename实现,必须使用this.$nextTick(() => {
否则不会渲染页面!!