Vue 的 keep-alive 会导致内存泄漏?

2019-04-07 15:14:06 +08:00
 rabbbit

具体表现为切换路由时,exclude 中不需要缓存的 component 无法被释放,还保存在内存中.

keep-alive 代码如下

<keep-alive :include="['shop']" :exclude="['album']">
  <router-view ref="router"></router-view>
</keep-alive>

include 中的 shop 是一个需要被缓存的页面

exclude 中的 album 是一个不需要被缓存

在 shop 和 album 多次切换后, 可以发现 heap snapshot 中有大量没有释放的 vue component.

初始的 snapshot 1

多次切换路由后的 snapshot 2, 可以看到大量未释放的 component

我找到了一个相关的issue.
但是官方认为这个 bug 已经被修复了

有人遇到过这个问题吗,有什么解决办法吗?

3163 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/552685

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX