我有一个本机应用程序,它使用许多屏幕来管理大型对象中的数据。
例如,以下每个屏幕都是管理此应用中1个对象的一部分的屏幕:地址,联系人,图片,备注等等。
是否有任何与最佳做法或性能相冲突的问题,使用单个reducer传回状态中的整个对象?
或者我的简化和状态是否应该更加面向屏幕,只返回每个屏幕正在处理的对象的属性?
答案 0 :(得分:2)
直接回答。 取决于
取决于每个reducer
存储的数据(由每个人维护的状态)
如果复杂数据更好,则创建单独的reducer
。
如果每个屏幕的状态只是一个扁平的JSON
对象,请将所有这些状态保持为单reducer
。
最后combineReducers()
将通过connect()
的简单redux
方法在我们想要的任何地方为我们提供所有这些内容。
通常我们会为reducer
保留container
,其中容器包含由此容器的reducer
水合的组件。
即使我们为每个component
维护一个'减速器',也不是问题。
另一个好的做法是让相关的状态说:
cart
=> cartReducer反过来接受cart
ADD_TO_CART
状态的所有操作,例如RESET_CART
,CHECKOUT_CART
,DELETE_ITEM
,reducer
等。
在您的情况下,如果地址,联系人,图片等与单个实体相关,则最好维持单个ModelState.Clear();
。