谷歌团队放弃 Redux,转投 MobX?

阅读时长 5 分钟读完

Redux 和 MobX 都是常见的 JavaScript 状态管理库,用于在前端项目中管理应用程序的状态。但是,最近有消息传出谷歌团队放弃了 Redux,转而使用 MobX。这是一个值得我们思考的决策,本文将从多个方面详细分析这个决策的原因,并为读者提供一些学习和指导意义。

什么是 Redux 和 MobX?

Redux 和 MobX 是两个不同的 JavaScript 库,都是用于管理前端应用程序的状态的。Redux 是一个基于函数式编程思想所设计的 React 中心化状态管理库,它使得应用程序状态的变化更加可控和易于追踪。相比之下,MobX 的设计理念则更偏向响应式编程,允许开发者直接访问数据,依赖于自动触发的更新来实现状态同步。

为什么谷歌团队弃用 Redux?

谷歌团队曾经是 Redux 的忠实爱好者,然而,他们最终选择了放弃 Redux,转而使用 MobX。虽然具体的原因并不十分明确,但是我们可以从以下方面推断其中的可能原因:

1.开发效率

Redux 在应对复杂项目时的编写难度较大,需要花费更多时间和精力来维护和调试。相比之下,MobX 具有更少的代码量和更短的开发周期,使得开发效率更高。

-- -------------------- ---- -------
-- ----- --
------ - ----------- - ---- --------

----- ------------ - -
  ------ --
-

-------- ------- ------ - ------------- ------- -
  ------ ------------- -
    ---- ----------- -
      ------ -
        ---------
        ------ ---------------- ---------------
      -
    -
    -------- -
      ------ -----
    -
  -
-

----- ----- - ---------------------

-- ---- --
------ - ---------- - ---- -------

----- --------- -
  ----------- ----- - ---
  
  ------- - ------ -- -
    ----------------------
  -
-

----- ----- - --- ------------

2.性能优化

Redux 的运行涉及了多个组件的状态变更,需要透过验证来触发重新渲染,这在性能方面有一定的损失。而 MobX 则是基于数据提供更新历史,并通过对其进行缓存来提高性能。

3.可读性

Redux 的特点是通过派发固定的 action 类型来改变整个应用程序的状态,并且修改后的状态是不可变的。然而,这也使得开发者很难直接从代码中看出整个状态流的变化。而 MobX 则是以更明显的方式帮助开发者理解某个属性的更新历史,并且修改后的状态直接映射到JavaScript 对象。这极大地改善了开发者从代码中阅读应用程序的状态的体验。

4.生态系统的优势

Redux 拥有更庞大的生态系统,并且被 React 官方所推荐使用。但是,这个生态系统也是一个双刃剑,因为它需要开发者学习使用各种配套工具,这使得学习曲线更陡峭并且容易误入坑中。而 MobX 则是更加简单,习得成本更低,反而使得用户更加聚焦核心功能。

如何学习和使用 MobX?

如果你想学习和使用 MobX 进行状态管理,你可以按照以下步骤进行:

1.安装和配置

在你的 React 项目中安装 MobX 和相关包:

2.创建 store 对象

创建你的 store 对象,其中包括你的应用程序状态的各种属性和方法。

-- -------------------- ---- -------
------ - ----------- ------ - ---- -------

----- --------- -
  ----------- ----- - ---

  ------------- ------- ------ -
    ----------------------
  -
-

----- ----- - --- ------------

3.使用 store 字段

在你的组件中使用 store 字段,以获取和修改应用状态。

-- -------------------- ---- -------
------ ------ - --------- - ---- --------
------ - ------- -------- - ---- -------------

---------------- -- -- ------ --- ----- ---
--------- -- -- -------- ------- -----
----- ------- ------- --------- -
  -------- -
    ----- - ----- - - -----------

    ------ -
      -----
        ----
          --------------------- -- -
            --- ----------------------
          ---
        -----
        ------- ----------- -- -------------------- ------------ -------------
      ------
    --
  -
-

------ ------- --------

结论

在本文中,我们详细分析了谷歌团队放弃 Redux,转而使用 MobX 的原因,同时提供了一些关于使用 MobX 的指导性内容。虽然选择使用 Redux 还是 MobX 取决于项目的具体需求和使用场景,但是我们希望本文能为读者提供帮助,指导你做出更加明智的决策。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67481fbb93696b0268e67e64

纠错
反馈