2017JavaScript框架战报-React分战场

【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本身是庞大的。

本文来自企鹅号 - IT168媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

2017年JS 框架回顾:React 生态系统

英文:Laurie Voss 译文:葡萄城控件 www.cnblogs.com/powertoolsteam/p/state-of-javascript-fr...

19910
来自专栏QQ音乐技术团队的专栏

Material Design技术分享

  因项目需要接触了近一个月的Material Design,之前只觉得它美丽而神秘,真正接触起来发现确实不错。针对这段时间做个小总结,也给广大战友们分享点踩坑...

4586
来自专栏知晓程序

独特独特最独特!用这个小程序在微信里送祝福,一定不会重样

日常生活中每个人都是设计师。有意或者无意,习惯或者突然,经常或者偶尔的行为,让我们创造出各种各样精彩的设计。

1124
来自专栏知晓程序

开发 | 小程序如何快速适配 iPhone X?

但是,由于 iPhone X 的「异型」屏幕,以及底部的「小白条」的存在,不少开发者都头疼应该如何适配这块略显奇怪的屏幕。

2464
来自专栏极乐技术社区

『教程』微信小程序canvas辑合(教程+Demo+跳坑)

社区里有一群canvas爱好者,比jsh5css,安静的小智,jeffer等同学他们在canvas方面都有着自己的学习心得和见解。 但是极乐叔发现在小程序开发学...

1.3K9
来自专栏小狼的世界

Axure制作Tab切换效果

axure 作为一款原型工具,能够帮助我们快速的设计原型,从而将产品人员的想法快速准确的传递给技术人员。

1413
来自专栏dodott的专栏

盒子端 CSS 动画性能提升研究

不同于传统的 PC Web 或者是移动 WEB,在客厅盒子端,接大屏显示器下,许多能流畅运行于 PC 端、移动端的 Web 动画,受限于硬件水平,在盒子端的表现...

961
来自专栏更流畅、简洁的软件开发方式

以【联动列表框】来看单一职责!

联动列表框,简简单单的五个字,仅仅从字面上看,就可以分出来两个职责: 职责一:列表框 职责二:联动 我们先来看这两个职责,然后再说引申出来的另外两个职责。 职责...

2669
来自专栏Keegan小钢

009 | 快速入门Web前端开发的正确姿势

入门标准很简单,就一条:达到能参与 Web 前端实际项目的开发水平。请注意,是实际项目,这就需要了解如今的实际项目开发都用了哪些技术栈。HTML/CSS/Jav...

2004
来自专栏ytkah

iOS版微信6.2.2更新:增加视频进度条

微信聊天不但能够文字、图片,还能发送视频,给我们带来了很多趣味,不过此前发送的视频只能顺序播放,而无法拖动快进,又有些不便。好消息来了,今天iOS版微信迎来6....

2776

扫码关注云+社区

领取腾讯云代金券