报告一共有三部分,这是第二部分,进入公众号查看另外两部分。
生态主要组成部分
与 Angular 等框架相比,React 并不是一个完整的解决方案,这就给了开源社区很大的空间来构建生态系统,以提供完整的应用程序体验。上图横坐标是时间,纵坐标是下载量占 NPM Package 下载量总和的比例。
React Router
完善的 Web 应用程序的一个共同特点是提供“路由”,这些“路由”本质上是不同的功能模块,在浏览器中表示为单独的 URL。 但路由并不是必需的,一些简单的应用程序就不需要使用路由。因此,React Router 虽然是最受欢迎的 React 路由解决方案,欢迎程度却只有 React 本身的一半。
Flux
React 还有一个未解决的数据层问题。在 React 推出不久,Facebook 还推出了Flux 用于管理应用程序中的状态,但直到 2015 年中期才得到普及,与 React Router 同步上升,这表明两者在网络应用程序中一同被使用。但是,2015年中期之后,它们的轨迹发生了很大的分化,Flux 的受欢迎程度缓慢下滑。
Redux
Flux 衰落的一个解释是 Redux 的崛起。Redux 于 2015 年中期推出,势头迅猛,而 Flux 则在同一时间开始下滑。 Redux 现在几乎和 React Router 一样流行,两者紧密地相互追随,并且越来越受欢迎。这表明 Redux 已经取代 Flux 成为 React 首选的状态管理方法。
MobX
MobX 是 2016 年中期推出的 Flux 和 Redux 的竞争对手。目前它正在快速增长,但仍然是这个领域的小玩家,值得关注。
RxJS
RxJS 是另一个与 Flux 和 Redux 竞争的状态管理组件。RxJS 有两个现存版本,Rx 的传统版本和 RxJS 的当前版本。虽然 Rx 正在下降,而 RxJS 正在增加,但两者都得到大量下载。 RxJS 作为其他项目的依赖,受其他项目的驱使,比如 Angular CLI,这意味着所有 Angular 的使用都会驱使相同数量的 RxJS 的使用。它也被合并到其他一些流行的命令行工具中。
GraphQL
GraphQL 与 React 并没有内在的联系,它只是 Web 客户端查询服务器数据的一种方式。它通过 Relay 和 Apollo 两个竞争库获得了普及,这两个库可以使得 Web 应用程序便捷地生成 GraphQL 和管理数据流。
Relay 首先被发布,但是很快被半年后发布的 Apollo 赶超。虽然 GraphQL 绝对数量还很小,但 Apollo 的增长曲线意味着 GraphQL 值得深入挖掘。
React 生态总结
看过去 12 个月的增长,我们可以看到:
Apollo 正在快速增长;
Flux正在下降;
React Router 和 Redux 都很受欢迎,并且在使用中联系紧密;
MobX 获得了良好的增长,但还是不如 Redux;
React本身的应用非常广泛。
关注获取前端最新资讯
领取专属 10元无门槛券
私享最新 技术干货