首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重构减肥剂

重构减肥剂
EN

Stack Overflow用户
提问于 2017-07-07 17:04:13
回答 1查看 792关注 0票数 2

我正在使用类似于React的方法进行我的项目,我的问题是我的还原器非常“平坦”,但是它们需要处理不同状态树区域中的许多更新,因此它们变得越来越复杂。

例如,在分派动作‘DO_ then’之后,首先我需要在3 LOC内更新我的状态,但是,当项目增长时,我需要处理其他特性,有人希望在执行相同的操作后看到基本结果+额外的结果。所以你可以想象,经过几个星期后,减员们变得“胖”起来,就像他们接触到同一棵树的许多不同区域,以同样纯净的方式,但是很难正确地构造它们内部的代码(一个状态树和一个商店)。

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

  • 调度'ADD_TODO‘
  • 更新状态,向待办事项数组中添加新的待办事项。

就我而言,这就像:

代码语言:javascript
复制
case SELECT_FILTER:
    return Object.assign({}, state, {
        oneProperty: ...,
        anotherProperty: null,
        nextProperty: false
        // and the logic is getting bigger and bigger
    })
  • 调度'SELECT_FILTER‘
  • 更新应用过滤器部分(应用过滤器的UI摘要)
  • 更新查询,用于从服务器获取数据。
  • 把这个清理干净
  • 抄袭
  • 下个月这个过滤器也应该..。

:/

我试着创建“还原器的集合”--过滤器减速器,列表减速器等等,但问题是我在同一页面上工作,传入的特性会带来横切的变化。在较小的应用程序中,简单的分组是可以的,但是现在每个减速机似乎对我状态的太多部分感兴趣。

那么,我的问题是如何正确地构造我的减速机?也许我在州树里放了太多的“地方州”?还是别的什么?我期待着看到你的解决方案与组成和结构减速器。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 18:03:30

去年,我为Redux文档编写了一个名为“结构减速器” :)的章节。它演示了组织和组成减速器逻辑的几种有用的技术。特别是,您可能对有关“重用还原逻辑”的部分感兴趣。

我的“实用Redux”系列教程还演示了一些更高级的还原器结构,特别是post 实用Redux,第7部分:表单更改处理、数据编辑和特性还原器

还需要考虑分派多个“原语”动作,这些动作可以按顺序分派,以形成更大的行为。例如,您可能会有一个thunk将BASIC_UPDATESPECIFIC_EXTRA_UPDATE_1SPECIFIC_EXTRA_UPDATE_2分送到一行。对于性能有一些需要注意的问题,但是这是一种有效的方法( perf关注点可以通过不同的批处理策略来解决)。有关更多信息,请参见调度多个动作减少存储通知事件上的Redux条目、我的博客文章习语修炼:对唐太斯的几点思考和Redux目录中的Store#Store更改订阅部分。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44976249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档