在vue3的setup语法糖里面创建一个echarts实例假定如下
onMounted(() => {
myChart = echarts.init(refMain.value)
})
onUnmounted(() => {
myChart = null
})
会造成内存泄漏吗?
在vue3的setup语法糖里面创建一个echarts实例假定如下
onMounted(() => {
myChart = echarts.init(refMain.value)
})
onUnmounted(() => {
myChart = null
})
会造成内存泄漏吗?
不显式设置为null
;也会被回收,当组件销毁之后,就已经不可获得了,那就会被标记清除——基于理论而言,未实验验证。
https://developer.mozilla.org...
现代浏览器一般来说是不会造成内存溢出的,浏览器会自己根据情况来进行垃圾回收。
但不是立马就会回收的,失去引用之后还会继续保持一段时间。
如果考虑性能问题,当然最好是使用 Echarts
提供的销毁实例方法来操作。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决
设置为null会自动垃圾回收,但是不一定能回收干净。没有执行echarts自己的dispose的话,内部的DOM事件监听可能会残留,所以最好先执行echarts自己的销毁方法。