## react+flux 和react +reduce 这两个组合哪个更好

#1

react+flux 和react +reduce 这两个组合哪个更好

#2

react + mobx

#3

mobx+1

#4

@jokerapi @dcbryant 但是好像facebook官网上给出的例子是使用flux呢?你们这么推荐mobx,它有什么过人之处吗?

#5

这是我的一个总结:

http://xulayen.imwork.net/2017/12/28/react-and-vue-summary/

#6

因为 flux 太复杂,一般人会选择redux这种各类文章都推荐的主流。
然而实际上使用redux需要你编写很多模版代码,纯函数式的写法也不便于理解,对于中小型项目来说效率不高,收益小。
mobx是新起之秀,比redux简单,oop的做法更容易理解,对中小型项目来说效率更快。

#7

@jokerapi 哦哦,受教了,蟹蟹辣!

#8

可能是我没接触其他的架构,我觉得flux还挺简单易懂的。

#9

react + ractor :slight_smile:

#10

redux比flux简单一些,但mobx比redux更简单一点,flux、redux束缚太多了,比较大型的项目有约束是好事,但是中小型项目更推荐用mobx,简单易懂

#11

你说的flux redux 的束缚指的是什么呢?能具体一点吗

#12

rector好像没有听过额,和flux redux mobx 有什么优缺点吗

#13

redux的原理就是context,它相当于一个全局变量,所以redux解决了组件间的交流,但是又带来了一个问题:全局变量,众所周知,我们是不提倡使用全局变量的,如果太多操作都能改变全局变量,有的组件不想改变数据,而其他组件操作这个全局变量,就会带来很多问题。而redux解决这个问题的办法就是加一些束缚,提高改变全局变量的难度,所以你想改变数据就必须提供一个action给dispatch,通过dispatch来改变数据;这个方法让全局数据不那么容易修改,还有一个问题是怎么让其他组件改变数据不干扰不想改变的组件,简单来说就是不改变原数据,而是复制那个数据,但是js对象的复制有一个问题,复制对象和被复制对象指向同一个引用,这个时候就引出了共享对象,我们可以新建一个对象,将原对象的属性复制到这个新对象,这也是我们经常在react中编写Object.assign()和对象扩展符的原因。其实就个人觉得来说,redux这些思想都是挺好的解决办法。但是碰到异步又遇到一些问题,需要用到中间件等等,而这所有的所有加在一起就挺麻烦了。以上都是一些个人学习以来的一些看法,如果哪里有错欢迎指正。

#14

蟹蟹你的回复,学习了。