Redux 重构减脂剂

Redux 重构减脂剂,redux,refactoring,state,Redux,Refactoring,State,我正在使用React-like方法处理我的项目,我的问题是我的简化程序非常简单,但它们需要处理不同状态树区域中的许多更新,所以它们变得越来越复杂 例如,在分派操作“DO_SOMETHING”后,首先我需要在3 LOC内更新我的状态,但是,当项目增长并且我需要处理其他功能时,有人希望在执行相同操作后看到基本结果+一些额外的内容。所以你可以想象,在花了数周的时间后,减速机变得“胖”起来,它们以同样的纯方式接触同一棵树的许多不同区域,但要在它们内部正确地构造代码——一个状态树和一个存储——确实很难 在

我正在使用React-like方法处理我的项目,我的问题是我的简化程序非常简单,但它们需要处理不同状态树区域中的许多更新,所以它们变得越来越复杂

例如,在分派操作“DO_SOMETHING”后,首先我需要在3 LOC内更新我的状态,但是,当项目增长并且我需要处理其他功能时,有人希望在执行相同操作后看到基本结果+一些额外的内容。所以你可以想象,在花了数周的时间后,减速机变得“胖”起来,它们以同样的纯方式接触同一棵树的许多不同区域,但要在它们内部正确地构造代码——一个状态树和一个存储——确实很难

在大多数教程中,我只能找到给定的场景:

发送“添加待办事项” 更新状态,将新todo添加到todo数组 而我的情况是:

case SELECT_FILTER:
    return Object.assign({}, state, {
        oneProperty: ...,
        anotherProperty: null,
        nextProperty: false
        // and the logic is getting bigger and bigger
    })
分派“选择过滤器” 更新应用的筛选器部分应用的筛选器的UI摘要 更新将用于从服务器获取数据的查询 清除这个 收到 下个月这个过滤器也应该。。。 :/

我曾尝试创建一组缩减器-过滤器缩减器、列表缩减器等等,但问题是我在同一个页面上工作,而引入的特性引入了横切更改。简单分组在较小的应用程序中是可以的,但现在每个减速机似乎对我所在州的太多部分感兴趣


所以我的问题是如何正确地构造减速器?也许我把太多的地方州放在州树上了?还是别的什么?我期待着看到您关于合成和构造减缩器的解决方案。

去年,我为Redux文档编写了一个名为:。它演示了一些用于组织和组合减速器逻辑的有用技术。特别是,您可能对和上的部分感兴趣

我还演示了一些更高级的减速器结构,特别是post


还值得考虑分派多个原始操作,这些操作可以按顺序分派以形成更大的行为。例如,您可能有一个thunk,它将基本更新、特定额外更新和特定额外更新排成一行。有一些关于性能的问题需要注意,但这是一种有效的方法,性能问题可以通过各种批处理策略来解决。有关更多信息,请参阅和上的Redux常见问题解答条目、我的博客文章以及我的Redux插件目录部分。

去年,我为Redux文档编写了一个名为:。它演示了一些用于组织和组合减速器逻辑的有用技术。特别是,您可能对和上的部分感兴趣

我还演示了一些更高级的减速器结构,特别是post

还值得考虑分派多个原始操作,这些操作可以按顺序分派以形成更大的行为。例如,您可能有一个thunk,它将基本更新、特定额外更新和特定额外更新排成一行。有一些关于性能的问题需要注意,但这是一种有效的方法,性能问题可以通过各种批处理策略来解决。有关更多信息,请参阅和上的Redux常见问题解答条目、我的博客文章以及我的Redux插件目录部分