由于在工作遇到React组件并行通讯(这里的通讯指的是组件的数据之间互相传递)的问题,不得不加入新的库和或者框架来解决并行组件通讯的问题,这里的并行组件的意思是这两个组件是没有共同的父组件的,由于React的是单向数据流的,两个并行组件没有共同的父组件,正常情况下子组件是先上父组件传递数据流,然后把数据流传递到另一个子组件,没有父组件,那么两个并行的组件就无法进行通讯,因此选择一个flux是必须的了,什么是Flux,Facebook对于Flux的解释就是一个为React而生的单向数据流结构框架,类似这种单向数据流结构框架有很多比如:Flux,Reflux,Redux,fluxXXX等,让人不知道选择那个,理解还不深就简单的对比一下

Reflux
reflux-data-flow

Flux
flux-diagram

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