优缺点对比
1.redux将数据保存在单一的store中;
mobx将数据保存在分散的多个store中
2.redux使用plain object保存数据,需要手动处理变化后的操作;
mobx适用observable保存数据,数据变化后自动处理响应的操作
3.redux使用不可变状态,这意味着状态是只读的,不能直接去修改它,而是应该返回一个新的状态,同时使用纯函数;
mobx中的状态是可变的,可以直接对其进行修改
4.mobx相对来说比较简单,在其中有很多的抽象,mobx更多的使用面向对象的思维;
redux会比较复杂,因为其中的函数式编程思想掌握起来不是那么容易,同时需要借助一系列的中间件来处理异步和副作用
5.异步处理:redux需要额外引入一些redux-xxx的库,mobx则不需要
mobx限制:
1.它不会分析你的数据中是否存在着循环依赖
2.它不会预先假定你的数据结构是plain object,class或是任何其他的数据类型
总结
mobx不能保证用户提供的数据一定能 JSON序列化,或者能在有限的时间遍历完。所以它更应该被认为是一个数据流管理工具,能够以较小的代价构建自己的状态管理架构。能够快捷的再现有的项目中使用,而不需要像redux一样进行大规模的重写。