【问题标题】:redux vs mvc like modelsredux 与 mvc 之类的模型
【发布时间】:2018-04-02 10:24:12
【问题描述】:

我有一个新项目即将推出,PO 建议使用 Redux 进行状态管理。

我想反对它,因为与基于模型的方法相比,我没有看到好处。

即而不是在存储中使用普通对象,reducers 来获取计算属性和操作来执行突变,我在模型本身上定义了这些:

class User {
    id = 'ec3d17a2-edee-48e6-b1cd-8f042a9e2a17'
    firstname = 'Jon'
    lastname = 'Doe'
    get fullname() {
        return this.firstname + ' ' + this.lastname
    }
    destroy() {
        axios.delete('/users/'+this.id)
        ...
    }
}

我在大多数博文中读到的论点是:

  • Redux 非常适合大型应用程序/团队
  • 当所有逻辑都集中在一个地方时,更容易跟踪所有内容

我认为使用上述结构构建代码和找到自己的方式要容易得多。

我真的受够了那些试图找出技术堆栈并认为 Flux/redux 是阅读后唯一“专业”方式的客户。我认为很难说服某人 redux 不一定是早期项目的最佳选择。当我争辩说它会减慢开发速度而不会在中小型规模上创造太多好处时,我担心它可能会被解释为懒惰而不是足智多谋。

【问题讨论】:

  • 另外,很高兴了解为什么 “Redux 非常适合大型应用程序/团队” 以及为什么 “当所有事情都发生时更容易跟踪所有内容逻辑在一个地方”.
  • 我也想看看这个问题的答案。

标签: javascript typescript redux


【解决方案1】:

您的批评在一定程度上是有效的。如果开发人员熟悉并熟悉 MVC,那么当以前的项目成功地使用 MVC 构建时,为什么还要冒险涉足未知领域。

redux 的优势在于更容易推理复杂应用的行为(规模仍然可以是小规模或中等规模)。在代码中设置断点并反映执行流程根本不如在开发工具中显示操作历史记录。它还鼓励您在应用程序的各个方面遵循单向流。与将当前存储在代码中的哪些数据、从哪个组件发出的调用等放在一起相比,一系列纯粹的状态转换更容易遵循。一切都更加碎片化和随机。

对于具有特定范围的特定团队可能没有意义。正如 Dan Abramov 本人所解释的那样,它肯定有其局限性和权衡:https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367

【讨论】:

    猜你喜欢
    • 2022-01-05
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-03-23
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多