Immer 入门
Immer#
2019 年 “年度突破”React 开源奖和“最有影响的贡献”JavaScript 开源奖的获得者
- 介绍博客: Immer: Immutability the easy way
- Egghead.io 简短课程,涵盖 Immer 的基本知识: Simplify creating immutable data trees with Immer (7 分钟)
- Egghead.io 免费深入课程: Immutable JavaScript Data Structures with Immer (58 分钟)
Immer(德语为:always)是一个小型包,可让您以更方便的方式使用不可变状态。
Immer 简化了不可变数据结构的处理#
Immer 可以在需要使用不可变数据结构的任何上下文中使用。例如与 React state、React 或 Redux reducers 或者 configuration management 结合使用。不可变的数据结构允许(高效)的变化检测:如果对对象的引用没有改变,那么对象本身也没有改变。此外,它使克隆对象相对便宜:数据树的未更改部分不需要复制,并且在内存中与相同状态的旧版本共享
一般来说,这些好处可以通过确保您永远不会更改对象、数组或映射的任何属性来实现,而是始终创建一个更改后的副本。在实践中,这可能会导致代码编写起来非常麻烦,并且很容易意外违反这些约束。 Immer 将通过解决以下痛点来帮助您遵循不可变数据范式:
- Immer 将检测到意外 mutations 并抛出错误。
- Immer 将不再需要创建对不可变对象进行深度更新时所需的典型样板代码:如果没有 Immer,则需要在每个级别手动制作对象副本。通常通过使用大量
...
展开操作。使用 Immer 时,会对draft
对象进行更改,该对象会记录更改并负责创建必要的副本,而不会影响原始对象。 - 使用 Immer 时,您无需学习专用 API 或数据结构即可从范例中受益。使用 Immer,您将使用纯 JavaScript 数据结构,并使用众所周知的安全地可变 JavaScript API。
原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/275427.html