我的网站有3页,例如www.example.com.au/invoices
,www.example.com.au/customers
和www.example.com.au/suppliers
。
在这种情况下,如何组织全局Redux状态,我的意思是结构。 它应该在下面吗?
state = {
invoices: {
//invoices related data
},
customers: {
//customers related data
},
suppliers: {
//suppliers related data
}
}
答案 0 :(得分:2)
这看起来不错。我发现尝试保持状态尽可能正常化是个好主意 - 尝试将其视为关系数据库。
这是一篇很棒的文章: https://medium.com/javascript-scene/10-tips-for-better-redux-architecture-69250425af44#.9c678jwib
原样 http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html
答案 1 :(得分:1)
由您决定如何存储。但是更方便的方法是为每个文件分别创建一个文件并将它们组合成一个商店。
即你的文件夹结构看起来像这样,
reducers/
|---- index.js
|---- customers.js
|---- invoices.js
|---- suppliers.js
在customers.js
,invoices.js
和suppliers.js
中的每一个内部,在每个中编写自己的reducer并使用{将它们合并到index.js
文件中的单个大型商店来自combineReducers()
基本上是流程,
redux
)。index.js
将它们合并为一个大型reducer并将其导出到store。希望它有所帮助! :)
答案 2 :(得分:1)
state = {
invoices: {
//invoices related data
},
customers: {
//customers related data
},
suppliers: {
//suppliers related data
}
}
看起来不错。
如果您在invoices
页面上,并且不会访问state.suppliers
或state.customers
,则您无需combineReducers
1}}所有这些都在一起。
您可以延迟加载缩减器(动态地使用store.replaceReducer
将它们注入商店)。这节省了一些字节;)
一些提示: