在tabs标签中使用懒加载 只有选中当前的tabs页, 才会渲染echarts ,再发送请求, 执行该tabs内部代码逻辑; 另外使用v-show进行判断,对其他tabs进行隐藏. 当然其他方法也有 , 不过个人推荐这一种方法 , 比较简单使用, 另外对初始加载也会友好一些, 因为使用到了懒加载
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="单一品种全国平均价" name="one" lazy>
<span
slot="label"
:class="activeName === 'one' ? 'active tab-span' : 'tab-span hover'"
>
单一品种全国平均价
</span>
<one-son v-show="activeName === 'one'"></one-son>
</el-tab-pane>
<el-tab-pane label="单一品种地区平均价" name="two" lazy>
<span
slot="label"
:class="activeName === 'two' ? 'active tab-span' : 'tab-span hover'"
>
单一品种地区平均价
</span>
<two-son v-show="activeName === 'two'"></two-son>
</el-tab-pane>
<el-tab-pane label="单一市场多品种对比" name="three" lazy>
<span
slot="label"
:class="
activeName === 'three' ? 'active tab-span' : 'tab-span hover'
"
>
单一市场多品种对比
</span>
<three-son v-show="activeName === 'three'"></three-son>
</el-tab-pane>
<el-tab-pane label="单一品种多市场对比" name="four" lazy>
<span
slot="label"
:class="
activeName === 'four' ? 'active tab-span' : 'tab-span hover'
"
>
单一品种多市场对比
</span>
<four-son v-show="activeName === 'four'"></four-son>
</el-tab-pane>
<el-tab-pane label="百家重点市场对比" name="five" lazy>
<span
slot="label"
:class="
activeName === 'five' ? 'active tab-span' : 'tab-span hover'
"
>
百家重点市场对比
</span>
<five-son v-show="activeName === 'five'"> </five-son>
</el-tab-pane>
</el-tabs>