Redux - immer 与 normalizr

Posted

技术标签:

【中文标题】Redux - immer 与 normalizr【英文标题】:Redux - immer vs normalizr 【发布时间】:2020-11-29 14:20:38 【问题描述】:

我过去曾使用过immer,并且非常喜欢它。它使使用 redux 变得轻而易举。我最近发现了normlizr,它看起来也很棒。

两者有什么区别? immer 是否提供与 normalizr 相同的标准化解决方案?对于生产应用程序,两者中的更好选择是什么?还是应该一起使用?

【问题讨论】:

【参考方案1】:

它们是两种完全不同的工具,可以一起使用。

Immer 是一个库,用于在编写“变异”语法时对数据执行不可变更新。

Normalizr 是一个库,用于获取多种类型的嵌套数据(例如包含 UserCommentsPost),并将它们全部提取到一组规范化查找表中。

它们都常用于 Redux 应用程序中。

Our official Redux Toolkit package 已经内置了 Immer。 RTK还自带了a createEntityAdapter API for storing and updating normalized data,内部使用了Immer,我们专门有a usage guide section on pre-processing response data with Normalizr and then handling it with createEntityAdapter

【讨论】:

以上是关于Redux - immer 与 normalizr的主要内容,如果未能解决你的问题,请参考以下文章

如何添加/删除使用 normalizr 生成的 redux 存储?

redux 中 normalizr 后的非规范化实体

Redux normalizr + 处理减少的响应

immer的使用——优化setState——优化useState——优化redux使用,提高性能

immer的使用——优化setState——优化useState——优化redux使用,提高性能

如何使用 normalizr 规范化来自 JSON 的数据?