mobx和Redux有哪些优点和缺点,特别是在React-Native环境中?

最近我听说每个人都在谈论mobx,我在生产React Native应用程序中使用过(使用)Redux.

我只是想看看是否有人有这两方面的经验,并可以建议每个人在哪里拥有优势.

我将粘贴他们的方法 I wrote in a Reddit comment摘要

> Redux深受功能编程原则的影响:

>它鼓励使用“纯”函数,希望您“不可变”地处理数据(即复制和修改副本,不直接更新原始值),并专注于数据流的明确定义和更新逻辑.
>它为您提供了诸如“时间旅行调试”功能(在您的州的各个更新之间来回切换,或从客户崩溃报告中加载应用程序状态的副本以查看正在进行的操作)等功能.
> Idiomatic Redux代码“规范化”嵌套或关系对象,如数据库.每个项目都在一个地方定义,而数据的其他部分只能通过ID引用该项目,以便稍后查找
>通常的抱怨是有太多的样板代码,而典型的Redux用法涉及字符串常量和switch语句之类的东西.
>当您想要通过应用程序显式跟踪数据流时,或者想要确切了解应用程序在特定状态下结束的原因时,请使用它.

> MobX受面向对象编程和反应编程原则的影响:

>它允许您将特定的数据片段定义为“可观察”,然后将其包装起来并跟踪对该数据所做的任何更改,并自动更新观察数据的任何其他代码片段.
>它鼓励使用标准的变异代码,如someObject.someField = someValue和someArray.push(someValue),真正的更新逻辑隐藏在MobX内部.
>惯用的MobX代码以嵌套的形式保存您的数据,并维护从一个对象到另一个对象的直接引用
>一个可能的抱怨是,您没有看到数据更新的时间和方式,并且可能更难以跟踪应用程序
>当您更喜欢OOP样式而不是Functional时,请使用它,更喜欢通过类而不是普通函数来表示和操作数据,或者希望编写不太明确的更新逻辑并让库完成管理事务的工作.

对于更深入的比较,我强烈推荐来自ReactConf 2017的Preethi Kasireddy的谈话MobX vs Redux: Comparing the Opposing Paradigms和Robin Wieruch的文章Redux or MobX: An attempt to dissolve the confusion.我也有number of other comparisons collected in my React/Redux links list.

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...