我是靠谱客的博主 哭泣宝马,这篇文章主要介绍vue使用v-if切换tab时echarts不渲染、内存泄露,现在分享给大家,希望可以做个参考。

之前自己写tab,出现了很多bug,这里记录一下。

一、v-show

子组件和插件如果放在tab2加载会失效,除非首次加载的时候加载tab2。

转换思路,用v-if。

二、v-if

(1)页面切换回去时echarts不会渲染

这时候在切换tab的点击事件中使用$nextTick()回调echarts函数就可以解决问题。

复制代码
1
2
3
4
5
6
7
8
9
10
// 切换tab1和tab2 changeTab(active) { this.activeName = active; if (this.activeName == 0) { //回调echarts this.$nextTick(() => { this.draw_echarts(); }); } else {} },

(2)因为页面内容过多,tab1的echarts泄露到tab2上,挤占tab2空间

这时候在切换tab的点击事件中打印tab1中id为"mychart"的div,是可以获取到html片段的,虽然tab2上并没有这个div。

 这时候需要先用getInstanceByDom()获取到echarts实例,再用dispose()将其销毁。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
// 切换tab1和tab2 changeTab(active) { this.activeName = active; if (this.activeName == 0) { //回调echarts this.$nextTick(() => { this.draw_echarts(); }); } else { console.log(document.getElementById("mychart")); this.echarts.getInstanceByDom(document.getElementById("mychart")).dispose(); } },

最后

以上就是哭泣宝马最近收集整理的关于vue使用v-if切换tab时echarts不渲染、内存泄露的全部内容,更多相关vue使用v-if切换tab时echarts不渲染、内存泄露内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部