做项目的时候遇到切换路由,vueComponent仍然存在内存中,不会被回收的问题。
还未找到解决方法,记录一下别人的解决方法:
链接:
https://forum.vuejs.org/t/vuejs-memory-leak-when-switching-routes/38865
https://github.com/vuejs/vue-router/issues/1181
https://stackoverflow.com/questions/51400373/vuejs-memory-leak-when-switching-routes
https://github.com/vuejs/vue/issues/6759
https://github.com/vuejs/vue/issues/4990
https://github.com/vuejs/vue-router/issues/1111
https://github.com/bootstrap-vue/bootstrap-vue/issues/1391
https://stackoverflow.com/questions/51240587/vue-memory-leak-each-time-v-if-value-is-changed-more-memory-is-needed
-
https://github.com/bootstrap-vue/bootstrap-vue/issues/1391
这个是因为第三方插件引起的内存泄漏
我在项目中把存在全局对象的数据放到vuex中,destroyed的中销毁事件监听等,在win10的IE和Chrome内存平稳了,但是win7的IE还是存在问题……蒙圈了
win7的话,在created和mounted中声明的变量要手动置为null,长的表达式用变量存下来,用完清空,data中的东西在destroyed中设置为null,setTimeout在beforeDestroy中清除,很多东西要手动清,包括引入的第三方插件
最最重要的,如果数据庞大,不要用vue的双向绑定