猿问

router切换后,组件销毁却并未真正删除DOM,快速切换页面时,使得内存消耗过大,该怎么解决?

使用的nw开发的项目,所以原生支持node,刚开始还以为是Nw导致的崩溃,后来才发现是vue(或者说vue-router)的原因。。

使用router切换页面前,初始占用内存是正常值(150M左右),正常速度切换路由的话,基本上因页面切换导致的内存增加会很快降回来,在±5M左右。
但如果切换的非常快的话,每次路由切换增加的3-10M,将不会降回原来的值且会不断增加,直到停止操作的时候,内存也不会很快降回正常值。

经过对自己项目的一系列测试后发现,如果因为快速操作而导致的内存涨至<=350M左右,一段时间不操作后,内存基本上都会降回初始的150M,但如果>350M的话,内存将只加不减,每次操作都会增加一定的内存占用,直到程序崩溃闪退。。

第一原因肯定是怀疑自己写的代码导致了内存泄漏,就另外快速生成(webpack+vue-cli)了一个demo,build后运行,最后的结果和上述差不多,大概如下:

demo下载

ABOUTYOU
浏览 2229回答 1
1回答

米脂

这样写试试<keep-alive>&nbsp; &nbsp; &nbsp; <router-view></router-view></keep-alive>
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答