gpt4 book ai didi

javascript - 使用 immutable.js 相对于 Object.assign 或扩展运算符的优势

转载 作者:行者123 更新时间:2023-12-03 13:00:57 25 4
gpt4 key购买 nike

到目前为止,我看到的大多数“入门样板”和一些关于 React/Redux 的帖子都鼓励使用 immutable.js来解决可变性。我个人依靠 Object.assign 或扩展运算符来处理这个问题,因此并没有真正看到 immutable.js 的优势,因为它增加了额外的学习,并且与用于可变性的普通 js 技术有所不同。我试图找到转换的正当理由,但无法找到,因此我在这里询问它为什么如此受欢迎。

最佳答案

这一切都与效率有关。

持久数据结构

持久数据结构在发生变异时会始终生成新的数据结构,从而保留其自身的先前版本。为了避免昂贵的克隆,仅存储与先前数据结构的差异,而在它们之间共享交集。这种策略称为结构共享。因此,持久数据结构比使用 Object.assign 或展开运算符进行克隆要高效得多。

Javascript 中持久数据结构的缺点

不幸的是,Javascript 本身并不支持持久数据结构。这就是 immutable.js 存在的原因,并且它的对象与普通的旧 Javascript Object 有很大不同。这会导致更冗长的代码以及大量持久数据结构到 native Javascript 数据结构的转换。

关键问题

immutable.js 的结构共享(效率)的优势何时超过其劣势(冗长、转换)?

我猜这个库只有在具有大量且广泛的对象和集合的大型项目中才会有返回,此时整个数据结构的克隆和垃圾收集变得更加昂贵。

关于javascript - 使用 immutable.js 相对于 Object.assign 或扩展运算符的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com