个人鄙意:Redux 和 Mobx 区分

一. 关于状况治理

它们都有一致保护治理运用状况的才能;

某一状况只要一个可托数据泉源(一般命名为store,指状况容器);
操纵更新状况体式格局一致,而且可控(一般以action体式格局供应更新状况的门路);
支撑将store与React组件衔接,如react-redux,mobx-react;一般运用状况治理库后,我们将React组件从营业上划分为两类:
    容器组件(Container Components):担任处置惩罚详细营业和状况数据,将营业或状况处置惩罚函数传入展现型组件;
    展现型组件(Presentation Components):担任展现视图,视图交互回调内挪用传入的处置惩罚函数;

二. 关注点的差别

1. Redux更多的是遵照Flux形式的一种完成,是一个JavaScript库,它的关注点在于:
     Action:一个JavaScript对象,形貌行动相干信息,重要包含type属性和payload属性:
     Reducer:定义运用状况怎样相应差别行动(action),怎样更新状况;
     Store:治理action和reducer及其关联的对象,重要供应以下功用:
          1>. 保护运用状况并支撑读取接见状况(getState());
          2>. 支撑监听action的分发,更新状况(dispatch(action));
          3>. 支撑定阅store的变动(subscribe(listener));
          4>. 支撑经由过程中间件(redux-thunk、redux-saga、redux-promise等)处置惩罚异步使命流程
2. Mobx是一个通明函数相应式编程的状况治理库,它使得状况治理简朴可伸缩,它的关注点在于:
    Action:定义转变状况的行动函数,包含怎样变动状况;
    Store:集合治理模块状况(State)和行动(action);
    Derivation(衍生):从运用状况中派生而出,且没有任何其他影响的数据,我们称为derivation(衍生),衍生在以下情况下存在:
       1>. 用户界面;
       2>. 衍生数据, 衍生重要有两种:
        Computed Values(盘算值):盘算值老是能够运用纯函数(pure function)从当前可视察状况中猎取;
        Reactions(回响反映):回响反映指状况变动时须要自动发作的副作用,这类须要完成其读写操纵;

三. 设想头脑的差别

Redux 更多的是遵照函数式编程头脑
Mobx 设想更多倾向于面向对象编程和相应式编程,一般将状况包装成可视察对象,一旦状况对象变动,就可以自动取得更新。

四. 对store治理的差别

Redux将一切同享的数据集合在一个大的store中,一致治理
Mobx是按模块将状况划分出多个自力的store举行治理

五. 数据可变性的差别

Redux强调的是对象的不可变性,不能直接操纵状况对象,而是在本来状况对象的基础上返回一个新的状况对象,末了返回运用的上一状况
Mobx中能够直接运用新值更新状况对象

六. 进修本钱方面

Redux 较烦琐,流程较多,须要设置,建立store,编写reducer,action,假如触及异步使命,还须要引入中间件
Mobx 流程相对就简朴许多,依据文档上手也比较快

    原文作者:高健
    原文地址: https://segmentfault.com/a/1190000017538995
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞