Javascript 如何组织一个有100多个动作的减速器?
如果您的reducer中有超过100个操作,导致文件中的代码超过2k行。您将如何着手设计项目的文件、状态和文件夹结构Javascript 如何组织一个有100多个动作的减速器?,javascript,reactjs,redux,react-state-management,Javascript,Reactjs,Redux,React State Management,如果您的reducer中有超过100个操作,导致文件中的代码超过2k行。您将如何着手设计项目的文件、状态和文件夹结构 let state = { car: { [id]: { // Data is shared between different components data: { name: "", model: "", color: ""
let state = {
car: {
[id]: {
// Data is shared between different components
data: {
name: "",
model: "",
color: ""
msrp: 0,
purchasePrice: 0
},
// Shared state that all components care about
isSelected: false,
currentDriver: '',
// Special Component A State ( only Component A cares about these state updates
isSaved: false,
// Special Component B State ( only Component B cares about these state updates
hasTheCarBeenInAnAccident: false
},
...
}
}
这是一个可以扩展的示例,其中可能有更多组件对该数据有自己的特殊状态更新
从整体上考虑你的应用程序。将其划分为功能并创建不同的还原剂。每个人都将负责应用程序的另一部分
您可以创建reducers文件夹,并将每个reducer放入单独的文件中。然后-使用combineReducers()
方法组合它们:
文件结构示例:
-src
--还原剂
---dataFetchReducer.js
---shoppingCartReducer.js
---userAuthReducer.js
当涉及到状态时,每个减速机都有自己的“一部分”状态,由它负责。
最后,在合并之后,它将被合并到一个状态对象中:)
Slice reducer:用于处理状态树的一个特定切片的更新的reducer,通常通过将其传递给CombineReducer来完成
也许你应该重新思考如何管理你的州(我应该把什么放在哪里?我应该以哪种方式分割什么)?如果没有任何上下文或代码,很难说你能做出什么简单的改进。@sandrooco我更新了它。对此表示抱歉。你不必为此感到抱歉。:)我认为所提供的解决方案提供了相当多的指针。我添加了更多的示例来解释我的意思