vue 版本:2.6.14 我有一个设置了 keep-alive 缓存的主页,当我每次往返主页和其他页面时,我发现每次都会缓存新的组件,而且之前的缓存的组件似乎没有被销毁,因为内存一直无法回收,删掉<keep-alive>之后就没有这个问题了,内存可以正确回收。求各位大佬解惑。
1
D2h0VL89HMAU417B 2023-06-03 01:41:52 +08:00
这可能是因为你的缓存组件中有一些全局状态或者定时器等资源没有被正确清理。当你使用 keep-alive 缓存组件时,缓存的组件会被保存在内存中,而不是被销毁。如果这些组件中存在一些没有被清理的资源,那么这些资源将一直占用内存,直到你关闭页面或者刷新页面。所以,为了避免这种问题,你需要在组件的 beforeDestroy 钩子函数中清理全局状态和定时器等资源。
另外,你也可以通过在 keep-alive 标签上添加 exclude 或 include 属性来控制那些组件需要被缓存,那些组件不需要被缓存,从而避免不必要的内存占用。 |