本文以思维导图形式整理了内存泄露知识图谱
一、引起的原因及解决方法,主要是注意闭包、全局变量和定时器、监听事件等
二、vue中的常见内存泄露,主要是
1、注意mounted(onMounted)的时候如果定义了一些全局变量,或者是定时器、监听事件这种的,要在beforeDestroy(beforeMounted)中释放或者移除掉
2、echarts用定时器获取数据的,也是注意在合适的时间移除掉定时器
切换页面(页面销毁)时注意对echarts实例做clear()或者dispose()
三、如何利用devTool中的快照snapShot定位内存泄露
这个就是说,比如要定位A页面的内存泄露问题,那先在A页面打开DevTools,看memory那个面板,有个垃圾桶一样的图标,点一下,
过几秒以后再点一下那个实心的圆点点,然后就会有一个可以生成快照的按钮,然后你就按一下,就有一个快照了
然后再切换到B页面,再切换回A页面,按刚才步骤再生成一个快照,两个快照如果大小不一样,就用上面一个下拉框的comparision里面比较一下,再分析一下
总结的思维导图
图中标记的参考博文
vue 事件总线EventBus的概念、使用以及注意点
定时器+echarts运行时间太长导致内存溢出页面崩溃
echarts未销会导致的内存泄露定位与解决
有很多还没有发,后面整理好了持续更新~