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_CART
、RESET_CART
、CHECKOUT_CART
、DELETE_ITEM
等
在你的情况下,如果地址、联系人、图像等与单个实体相关,最好保持单个 reducer
。
我有一个 React Native 应用程序,它使用许多屏幕来管理大型对象中的数据。
例如,以下每一项都是一个屏幕,用于管理此应用程序中 1 个对象的一部分:地址、联系人、图像、便笺等等。
是否有任何问题会与使用单个 reducer 传回状态中的整个对象的最佳实践或性能发生冲突?
或者我的 reduce 和 state 应该更面向屏幕,只传回每个屏幕正在处理的对象的属性?
直接回答。 视情况而定
取决于每个reducer
存储的数据。(每个维护的状态)
如果数据比较复杂,最好单独创建一个 reducer
。
如果每个屏幕的状态只是一个平面 JSON
对象,请将它们全部保持在单个 reducer
。
最后 combineReducers()
将通过 redux
.
connect()
方法使它们在我们想要的任何地方都可用
一般来说,我们会为 container
维护一个 reducer
,其中容器包含由该容器的 reducer
水合的成分。
即使我们为每个 component
维护一个 'reducer' 也不是问题。
还有一个好的做法是保持相关状态说:
cart
=> cartReducer 依次接受对 cart
状态的所有操作,如 ADD_TO_CART
、RESET_CART
、CHECKOUT_CART
、DELETE_ITEM
等
在你的情况下,如果地址、联系人、图像等与单个实体相关,最好保持单个 reducer
。