redux和mobx都是为了解决React管理复杂状态的问题。
主要区别如下:
- redux结构复杂, 函数式编程思想,如reducer是个纯函数; mobx简单,面向对象/响应式编程,核心同vue
- redux是单一数据源, 只有一个store,一个状态树;mobx组件更加颗粒化, 每个模块都是一个store
- redux是必须通过dispatch触发改变状态,而mobx可以直接修改状态
- redux处理异步任务需要额外的组件,如redux-sage等
- redux通过react-redux的Provider将store注入React应用;通过connect注入state到应用; mobx通过react-mobx的Provider注入所有的stores;使用inject注入某组件,然后通过@observer响应@observable对象变化