作为一个Redux的初学者,给出(一个更大的应用程序的想法)我想象一个类似于的根减速器:
const rootReducer = combineReducers({ accounting, crm, sales })
在这种情况下,应用程序状态将包含accounting,crm和sales,即使用户仅使用应用程序的一部分也是如此。这可能是有利的,例如在会计和CRM之间来回切换时作为缓存,但您可能不希望保留所有已打开的视图的所有数据,即没有任何修剪的完整可能的状态树,在应用程序中永远或甚至在加载时将整个树初始化为其初始状态。
是否有解决此问题的习语,模式或图书馆,或者我遗失了什么?
作为解决保留所有数据的部分解决方案,我想象一些事情,比如在导航离开应用程序的某些部分时将状态的一部分重置为初始状态,给出一些声明性规则,例如:
accounting = {}
收到ACCOUNTING_LEAVING
<Accounting/>
(间接通过componentWillUnmount
等操作)
crm.mail = {}
收到<MailEditor/>
componentWillUnmount
我没有看到以任何方式清理国家的例子。许多“list + detail view”示例存储类似{ list: [...], detail: {...} }
的状态,但是当切换到详细视图时,列表既不会被清空,也不会被清空或删除。我很快就会回到列表视图,但是在没有发布数据的情况下使用应用程序9到5时就不行了。
答案 0 :(得分:4)
一些相关的想法:
总体而言,您如何组织州,更新时以及更新内容取决于您自己。 Redux只是为进行更新的过程提供了模式和规则。