我什么时候应该使用 icepick.merge 而不是 lodash.merge
When should I be using icepick.merge over lodash.merge
我最近发现需要在我的化简器内部进行深入的合并。
我发现icepick.merge和lodash.merge都可以完成这项工作。
似乎icepick.merge是一种递归合并和调用object.freeze的有效方法。
在使用反应化简器(和不变性)时,什么时候应该使用冰锥而不是 lodash?在数组和对象上调用 object.freeze 是很好的做法吗?
这是强制执行不可变性与否的问题,以及您想要什么级别的控制/抽象。
洛达什
Lodash 为您提供了以不会改变数据结构的方式处理数据结构的工具,但它不会对数据结构本身强制执行不变性。例如,没有什么可以阻止您或任何其他开发人员在使用 lodash 时改变状态。
冰锥
Icepick似乎允许您保留现有的数据结构,但冻结它们,允许您检查Chrome中的数据结构并让它们像往常一样运行。我没有在项目中使用过icepick,但我注意到有些人更喜欢它,因为它的轻量级性质以及您保留现有数据结构的事实,允许在开发工具等中检查它们。
不可变.js
我解决这个问题的首选方法是使用ImmutableJS,使用该库提供的数据结构,消除了冻结/解冻的繁琐工作,并在整个项目中一致地强制实施不变性。不可变提供的数据结构内置了类似于常规 JavaScript 数据结构的 API,并添加了一些强大的工具,例如 lodash,如深度合并。
相关文章:
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Lodash从集合创建集合
- Lodash 从值数组中查找数组中的值
- Lodash懒惰链不'It’我不管用
- Lodash映射并返回唯一
- 应该如何在typescript中键入lodash流函数
- 使用lodash的特定对象特性值
- 使用lodash查找具有truthy值的JS对象的属性
- 使用lodash下划线基于键拆分jsonarray
- 在不使用lodash-get的情况下从json中提取深层属性
- lodash:重命名对象中的键
- 在lodash上有没有一个替代方案.merge.apply(_,x);其中x是对象的数组
- 有没有一种简单的方法可以用Lodash映射嵌套数据
- 正在将lodash注入Angular提供程序
- 使用Lodash从JSON对象获取特定于环境的配置
- 对象数组的Lodash并集
- Lodash - .extend() / .assign() 和 .merge() 之间的区别
- 我什么时候应该使用 icepick.merge 而不是 lodash.merge
- 使用lodash merge会导致不更新数组
- 在typescript中,如何从“”进行导入合并;lodash/merge”;