【IT168 资讯】我们来看看与React有关的软件包的生态系统。当Facebook构建React时,就有许多来自开源社区的第三方软件包。为提供完整的应用程序体验,这些软件包使用React并添加了附加功能。其中几个中因提供了类似的功能,彼此之间存在竞争。
React Router
成熟的Web应用程序共有的一个特点是都提供了多个“路由”,这些“路由”本质上是不同的功能块,在浏览器中表示为单独的URL。React不需要为更简单的应用程序使用路由,有时用在桌面和移动应用程序等环境中,路由也并不是必需的。因此,React Router虽然最受欢迎的React应用程序路由解决方案,但流行度却不及React本身的一半。
React的一部分:通过将自己限制在一个明确定义的问题领域内,并具有明确定义的接口,使其本身可以应用于比原始设计更广泛的应用范围。这一决定增加了开发人员使用和处理React的能力,进一步改进并扩展了他的生态环境,创造了一个有益的循环。这一结果出乎意料,因为React作为一个局部的解决方案,本质上不如Ember和Angular这样的完整框架使用起来方便。
Flux
一个完整应用程序的另一个不通过React的部分就是数据层。推出React的同时,Facebook还推出了Flux和GraphQL。两者都不如React流行,这再次显示了React在一小部分问题上的解决问题能力。
Flux在React之后不久就被推出,但直到2015年中才与React Router同步渐渐走入大众的视野,这表明了两者在网络应用程序中正在“捆绑”使用。但是,2015年中期之后,它们的轨迹发生了很大的分化,Flux的欢迎程度缓慢下滑。
Redux
Flux垮台的一个原因是Redux的崛起。Redux在2015年年中引入了Redux,与Flux在应用程序功能上有相同的部分,但不同的是开发经验,与此同时Flux开始下滑。现在Redux几乎和React Router一样流行,而且两者紧密地相互追随,并且越来越受欢迎。这表明Redux已经取代Flux成为React网络应用程序中的首选管理状态系统。
MobX
MobX是在2016年中推出的Flux和Redux竞争对手。目前它正快速成长,虽然仍然只是这个领域的小玩家,但也值得关注。
RxJS
RxJS是另一个与Flux和Redux竞争的状态管理组件。RxJS的流行趋势不能用简单的模式来追踪或解释。首先,它有两个extant版本,一个名为rx的遗留版本和一个名为rxjs的当前版本。虽然rx版本目前正在下滑,而rxjs正在上升,但两者都得有大量使用率。
RxJS似乎是作为其他项目的子依赖项驱动的,特别是Angular CLI。这意味着所有使用Angular的驱动器都使用相同的RxJS,也被合并到其他一些流行的命令行工具中。
GraphQL
虽然它与React是同时在Facebook内部开发的,但是GraphQL与React并没有内在的联系。它只是Web客户端查询服务器数据的一种方式。它通过名为Relay和Apollo的两个竞争库得到了一定的普及,这两个库提供用于生成GraphQL和管理数据流的Web应用程序。
首先推出的是Relay,目前正在持续成长,但是已经被半年后发布的Apollo盖过了风头。虽然绝对数量还很小,但Apollo的增长轨迹值得深入挖掘。
React生态系统总结
回头看过去12个月的变化,我们可以看到各个“玩家”在React生态系统中的位置变化:
* Apollo正在快速增长。
* Flux正在下降。
* React Router和Redux都非常受欢迎,并且有紧密地关系。
* MobX增长看好,但还没有危及到Redux的地位。
* React本身是庞大的。