Reducer/state 大型对象的组织

Reducer/state organization for large objects

我有一个 React Native 应用程序,它使用许多屏幕来管理大型对象中的数据。

例如,以下每一项都是一个屏幕,用于管理此应用程序中 1 个对象的一部分:地址、联系人、图像、便笺等等。

是否有任何问题会与使用单个 reducer 传回状态中的整个对象的最佳实践或性能发生冲突?

或者我的 reduce 和 state 应该更面向屏幕,只传回每个屏幕正在处理的对象的属性?

直接回答。 视情况而定

取决于每个reducer存储的数据。(每个维护的状态)

如果数据比较复杂,最好单独创建一个 reducer

如果每个屏幕的状态只是一个平面 JSON 对象,请将它们全部保持在单个 reducer

最后 combineReducers() 将通过 redux.

的简单 connect() 方法使它们在我们想要的任何地方都可用

一般来说,我们会为 container 维护一个 reducer,其中容器包含由该容器的 reducer 水合的成分。

即使我们为每个 component 维护一个 'reducer' 也不是问题。

还有一个好的做法是保持相关状态说:

cart => cartReducer 依次接受对 cart 状态的所有操作,如 ADD_TO_CARTRESET_CARTCHECKOUT_CARTDELETE_ITEM

在你的情况下,如果地址、联系人、图像等与单个实体相关,最好保持单个 reducer