在React中如果两个组件是并行的,那么它们之间是无法进行数据传递的,这里并行组件指的两个组件没有共同的父组件。如果要这种并行的组件进行数据交换,我们可以使用全局window对象进行,但是这样会污染全局环境,此时我们需要找一种更好的解决方式,那就是状态管理工具Flux,Reflux,Redux,Flux等,那么我们该怎么选择状态管理器,他们有有什么不同,下面简单说一下它们的区别
Reflux
Flux
redux
André Staltz
相同概念
Action -> Data Store -> Component
数据流结构对比
- Reflux的数据流相对简单,没有dispatcher的概念,没有Redux的中间件概念
- Flux的数据流结构对于Reflux来所相对复杂,多了dispatcher的概念
- Redux数据流结构和Flux相当,但不相同,复杂程度差不多,还有中间件概念
代码层面的对比
- Reflux代码的复杂度相对来比简单易于理解,简洁优美
- Flux复杂度相当高,相对于Reflux来说,Flux的代码太多,而且不易于阅读
- Redux复杂度中等,阅读相对容易理解
功能上对比
- Reflux很简单,支持异步数据流,支持事件触发器的切换
- Flux
- Redux功能堪称强大, logging(日志), hot reloading(热重载), time travel(时间旅行), universal apps(通用), record(记录) and replay(回放)
总结
总得的来说Redux是主流且强大,Reflux简单而优美,Flux..............