React 状态管理之 Redux Mobx 对比

764 阅读1分钟

1. Redux 和 Mobx它们都有统一维护管理应用状态的能力;

某一状态只有一个可信数据来源(通常命名为store,指状态容器);
操作更新状态方式统一,并且可控(通常以action方式提供更新状态的途径);
支持将store与React组件连接,如react-redux,mobx-react;通常使用状态管理库后,我们将React组件从业务上划分为两类:
1.容器组件(Container Components):负责处理具体业务和状态数据,将业务或状态处理函数传入展示型组件;
2.展示型组件(Presentation Components):负责展示视图,视图交互回调内调用传入的处理函数;

2. Mobx和Redux对比###

设计思想store数据可变性约束性异步处理更新粒度缺点优点
Mobx面向对象响应式编程多独立store直接修改原有对象async/awaitobservable,更新粒度较细数据回溯困难高度封装调试困难学习成本低灵活
Redux函数式编程全局唯一store遵循开闭原则,不修改原有对象,生成新的对象利用中间件redux-thunkredux-sagadispatch进行广播,需通过对比来控制更新粒度学习成本高约束性强数据流可控、可追踪可维护性强

3. Mobx为什么很少和hook同时使用

    Mobx直接赋值给类的属性即可,不需要操作state或props,所以使用Mobx时会更多的使用类组件,而不使用函数式组件,从而也减少了对hooks的使用