javascript - redux 与 mvc 之类的模型

标签 javascript typescript redux

我有一个新项目,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 不一定是项目早期阶段的最佳选择。当我争辩说它会减慢开发速度而不会在中小型规模上创造太多好处时,我担心它可能会被解释为懒惰而不是足智多谋。

最佳答案

您的批评在一定程度上是有道理的。如果开发人员熟悉并熟悉 MVC,为什么要在以前的项目成功地使用 MVC 构建架构时冒险尝试未知的东西。

redux 的好处是更容易推理复杂应用程序的行为(它仍然可以是中小型应用程序)。在代码中设置断点并反射(reflect)执行流程根本不如在开发工具中显示操作历史记录。它还鼓励您在应用程序的各个方面都遵循单向流。一系列纯状态转换比将当前存储在代码中的数据、从哪个组件进行的调用等放在一起更容易理解。一切都更加分散和随机。

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

关于javascript - redux 与 mvc 之类的模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49609490/

相关文章:

javascript - AWS 的 Cognito 文档似乎毫无意义

Javascript:将函数参数与字符串结合起来引用var

reactjs - 在 react redux 中分派(dispatch)对子组件的操作的惯用方法,而无需一直传递 props

typescript - 定义 1...n 个字符串模板类型的通用交集类型

javascript - 单击 window.open 时如何加载 JavaScript 函数?

javascript - 在 React Native 应用程序开发中从 ModelDropdown 获取文本

angular - 尝试将 Stomp over SockJS 添加到 Angular 应用程序 : TS2307 Cannot find module

javascript - redux reducer 不重新渲染组件

redux - 在 Flutter Redux Epic 中间件中,如何在流变量更改后分派(dispatch)操作?

javascript - Immer 不支持在数组上设置非数字属性