You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

useMemo缓存值的销毁时机:是否在组件卸载时清除?

useMemo缓存值的销毁时机解答

缓存值的销毁触发场景

  • 当依赖项发生变化时:旧的缓存值会被直接丢弃,useMemo会重新计算新值并缓存新结果。
  • 当组件卸载时:组件实例被销毁,与之绑定的所有useMemo缓存值会失去引用,最终被JavaScript的垃圾回收机制从内存中清除。

依赖未变时,缓存值何时被清除

只要组件处于挂载状态且依赖没有变化,缓存值会一直保留在内存中。不过React内部有极端情况下的优化逻辑——比如系统内存不足时,可能会主动清除未被频繁使用的useMemo缓存,但这种情况非常少见,开发者无需额外处理。

关于组件卸载时缓存值是否保留的疑问

这个认知是错误的。useMemo的缓存值是和组件实例绑定的,组件卸载后,整个实例都会被React回收,缓存值失去了引用,很快就会被垃圾回收机制清理出内存,不会一直留在内存里。

内容的提问来源于stack exchange,提问作者Daon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:12:01