本博客 hjy-xh,转载请申明出处
二者主要概念
函数式编程相关知识
异同点
设计思想:函数式 VS 面向对象
Redux遵循函数式编程思想,MobX则更多从面向对象和响应式编程的角度来考虑问题可以从
Redux的reducer中看出来,它就是一个纯函数,只依赖入参:1
2
3
4
5(state, action) => {
return Object.assign({}, state, {
...
})
}MobX将状态包装成可观察对象,一但状态对象变更,就重新渲染视图对store管理:单一store VS 多个store
store是应用管理数据的地方,在Redux中,应用的所有数据都集中在一个大的store中;MobX则通常是按照模块来将应用状态划分,在多个独立的store中管理数据可变性:不可变 VS 可变
Redux状态对象通常是不可变的,一般是在原来的状态对象基础上返回一个新的状态对象;MobX则可以直接使用新的值更新状态对象整体差异
Redux提供可以进行时间回溯的开发工具,同时因为它使用纯函数以及更少的抽象,让调试变得更加容易;MobX使用起来相对简单,但是其中有更多的抽象和封装,所以调试起来会更加复杂,同时结果也更难以预测