当使用带有react redux的immutable.js时,是否允许reducer返回记录实例而不是对象?

问题描述 投票:0回答:1

我是新手反应redux以及使用immutable.js库。我想知道是否一个坏主意让我的reducer返回一个Record实例而不是一个简单的对象。这样做的想法是允许我使用方便的方法,如合并,而不是必须写类似的东西。

return Object.assign({}, state, updatedState)

有没有令人信服的理由为什么不应该这样做?

reactjs react-native redux immutable.js
1个回答
1
投票

返回记录实例并不是一个坏主意,因为Immutable.js将为您处理。您的整个redux树将是不可变的,因此它只会被其操作集更改。

正如提到的here

封装在Immutable.JS对象中的数据永远不会发生变异。始终返回新副本。

工作流程

Immutable.js生成数据Persistant,因此以前的数据副本可用并通过hash maps尝试和vector尝试共享数据。

因此,不需要涉及昂贵的操作,例如克隆数据。

需要从缓存中复制数据最小化,这导致它比克隆操作更快。如果值没有变化,它可以避免创建新对象。

另外需要注意的是Object.assignspread operator都是浅层操作。因此,您需要对嵌套操作进行更多修改。

你可以检查两个here的性能

© www.soinside.com 2019 - 2024. All rights reserved.