程序员鸡皮
文章 分类 评论
323 4 39

站点介绍

一名PHP全栈程序员的日常......

在什么情况下会选择使用WeakMap而不是Map?

abzzp 2026-05-19 351 0条评论 前端 vue前端

首页 / 正文
本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......

发布于2024-07-04

在Vue的源码中有这样一段代码:

Vue源码部分图片
WeakMap管理target原对象:WeakMap的键target是我们原始的对象,比如Vue组件中的数据对象。当一个组件不再使用时,它的相应数据原对象也会被销毁。如果我们使用的是Map,由于Map对键值是强作用的,这些原对象将不被垃圾回收,从而导致内存泄漏。但是,使用WeakMap后,由于它对键原对象是弱引用的,当对象不再被其他地方引用时,他们会被垃圾回收,WeakMap中对应的键值对也会被移除,从而避免了内存泄漏。
WeakMap的值是Map对象:在Vue3的响应式系统中,WeakMap的值是一个Map对象,这个Map用于存储原对象与其依赖之间的关系。当原对象销毁时,WeakMap会自动移除相关的键值对,因为WeakMap对键是弱引用的。因此,原对象所对应的Map也会被垃圾回收机制自动注销。这样做的好处是,所有与该原对象相关的依赖追踪信息会在原对象销毁时自动清理,进一步防止内存泄漏。

感谢观看

评论(0)

文章目录

最新评论

  • 姓名测试打分

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 凡梦星尘

    友链已经添加好了,欢迎回访哈

  • 生辰八字算命

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 生辰八字算命

    文章不错支持一下,非常喜欢

  • 免费算命

    文章不错非常喜欢,支持一下

  • 茗辰原

    马克吐温的作品就很经典,小时候很爱看

  • 姓名测试打分

    文章不错支持一下,非常喜欢

  • 姓名测试打分

    文章不错非常喜欢,支持

日历

2026年11月

日一二三四五六
1234567
891011121314
15161718192021
22232425262728
2930     

站点公告
本站是作为记录一名北漂程序员编程学习以及日常的博客,欢迎添加微信BmzhbjzhB咨询交流,喜欢吃红薯或粉条的也可以私聊我......
点击小铃铛关闭
配色方案