【发布时间】:2018-10-21 05:33:42
【问题描述】:
我正在开发一个 React + redux + Immutable.js + reselect 应用程序。我正在考虑一种设计,我在 reducers 和 sagas 中使用 Immutable.js,但不想将此库与智能组件耦合,因此我的应用程序的演示部分尽可能干净。
根据redux文档your selectors should always return Immutable object。
我的想法是在重新选择选择器中计算派生状态并返回纯 JS 对象。如果我使用 memoized 选择器,如果 redux 状态的底层部分相同,则不会在每次调用时创建新对象,因此除非需要,否则不会重新渲染我的组件。
我知道我会为可组合性付出部分代价,因为选择器不能用作其他 Immutable.js-ready 选择器的输入,但我会得到更干净的智能组件。
这种解决方案还有其他缺点吗?
为什么 redux 文档如此强烈地鼓励将不可变对象推送到智能组件?
【问题讨论】:
标签: javascript reactjs redux immutable.js reselect