【发布时间】:2017-01-10 13:50:50
【问题描述】:
我有一些非常大的要求,我不想让它全部不可变并保存到状态,因为它很慢。我想在某处将其设置为普通的 JS 可变对象,并在动作创建者内部对其进行处理,只调度一小部分并使它们不可变。
我应该将这些可变数据保存在哪里?一直在想状态,但是reducer应该长什么样子呢?:
case GET_ALL:
return state.merge({
data: action.response
})
现在我的 reducer 只包含纯函数,其中包含自动创建不可变对象的合并。
【问题讨论】:
-
我无法理解你的论点,什么是更新状态或渲染状态缓慢?您当前使用的是普通的 JS 对象还是一些不变性库?你当前的状态对象有多大?
-
更新状态很慢,更具体地说 - 合并操作(将 JSON 深度转换为不可变)。
-
尝试用
console.time() and console.timeEnd()测量合并函数的执行时间。避免存储所有结果数据也是一个好主意,只取需要的数据。
标签: reactjs redux immutable.js