在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..............