对所有积垢动作使用一个Redux减速器?

对所有积垢动作使用一个Redux减速器?,redux,ngrx,Redux,Ngrx,为什么不使用单个reducer函数向Redux存储添加、更新和删除实体?它可以简单地使用action.payload.table属性来标识要在存储中使用的正确“表” 我从未在示例、博客文章等中见过这种模式。相反,大多数示例都有专门用于切换实体上单个字段的操作,例如todo上的“完成”标志。在一个大型应用程序中需要大量的重复,这让我无法使用Redux,所以我希望这是可行的 例如: function entityReducer(state, action) { //Action payload

为什么不使用单个reducer函数向Redux存储添加、更新和删除实体?它可以简单地使用action.payload.table属性来标识要在存储中使用的正确“表”

我从未在示例、博客文章等中见过这种模式。相反,大多数示例都有专门用于切换实体上单个字段的操作,例如todo上的“完成”标志。在一个大型应用程序中需要大量的重复,这让我无法使用Redux,所以我希望这是可行的

例如:

function entityReducer(state, action) {

  //Action payload includes the entity "type" or "table" name

  switch(action.type) {
    case 'CREATE_ENTITY': {
      ...
    }
    case 'UPDATE_ENTITY': {
      ...
    }
    ...
  }
}

是的,这是完全可行的。实际上,我在我的生产应用程序中也有类似的功能,我会根据需要在操作中传递
itemType
itemID
,可能还会传递
newitemtattributes
字段。也就是说,我还使用抽象层来处理这些简化程序中的更新。我在我的博客上写过


您可能还对Redux文档中的部分感兴趣,该部分讨论了重用减速机逻辑的方法。

通常情况下,这是您构造减速机的方式,它仍然需要4个操作:)看看MobX,可能会让我更合您的口味。@Oridori MobX是否为对象提供了通用的CRUD减速机?我快速看了一眼后就不清楚了MobX@ciekawy-MobX是另一个状态管理器。它不是一个减速机。@Oridori,因为问题是关于一个可重复使用的积垢减速机,我想知道MobX能帮上什么忙this@ciekawy-我指的是问题的这一部分-“大型应用程序中需要的重复次数使我无法使用Redux”,因为MobX需要更少的样板文件。很高兴听到这是可行的。为什么几乎所有的示例都包含更新单个实体上单个字段的操作?我不知道,我没有写这些示例:)可能是因为相同的原因,大多数框架演示都是另一个TodoMVC实现——它很简单,并展示了基本思想。