Javascript 如何组织一个有100多个动作的减速器?

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: ""

如果您的reducer中有超过100个操作,导致文件中的代码超过2k行。您将如何着手设计项目的文件、状态和文件夹结构

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我更新了它。对此表示抱歉。你不必为此感到抱歉。:)我认为所提供的解决方案提供了相当多的指针。我添加了更多的示例来解释我的意思