vuejs切换路由导致内存泄漏

做项目的时候遇到切换路由,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

  1. https://github.com/bootstrap-vue/bootstrap-vue/issues/1391
    这个是因为第三方插件引起的内存泄漏

    vuejs切换路由导致内存泄漏_第1张图片

    vuejs切换路由导致内存泄漏_第2张图片
    3580c82f6c16bbcbbc409f5c395b168.png

  2. https://github.com/vuejs/vue-router/issues/1111

vuejs切换路由导致内存泄漏_第3张图片
c9a9b3e115ac81a5a61d80238d97803.png
vuejs切换路由导致内存泄漏_第4张图片
2833cc967ea3bccd972053152e8a170.png
vuejs切换路由导致内存泄漏_第5张图片
57b7a7ffe9c079c03043c54562b1c1e.png
vuejs切换路由导致内存泄漏_第6张图片
2a228da0face6223784658a0de3b688.png
vuejs切换路由导致内存泄漏_第7张图片
82e458376e4fc8546a2d4f573f64659.png
  1. https://github.com/vuejs/vue/issues/4990
    vuejs切换路由导致内存泄漏_第8张图片
    bf95d8061d6eb191739eabe50c1ed1b.png
  1. https://github.com/vuejs/vue/issues/6759
vuejs切换路由导致内存泄漏_第9张图片
6ae6e98f41214c529e1e1724c675090.png
vuejs切换路由导致内存泄漏_第10张图片
c9574b3c2f30d67324e38553d7c1bf9.png
  1. https://stackoverflow.com/questions/51400373/vuejs-memory-leak-when-switching-routes
vuejs切换路由导致内存泄漏_第11张图片
dd7ef0cc4811381a0949148ec01b200.png
  1. https://github.com/vuejs/vue-router/issues/1181
  1. https://forum.vuejs.org/t/vuejs-memory-leak-when-switching-routes/38865

我在项目中把存在全局对象的数据放到vuex中,destroyed的中销毁事件监听等,在win10的IE和Chrome内存平稳了,但是win7的IE还是存在问题……蒙圈了

win7的话,在created和mounted中声明的变量要手动置为null,长的表达式用变量存下来,用完清空,data中的东西在destroyed中设置为null,setTimeout在beforeDestroy中清除,很多东西要手动清,包括引入的第三方插件

最最重要的,如果数据庞大,不要用vue的双向绑定

你可能感兴趣的:(vuejs切换路由导致内存泄漏)