凌晨2点,Dan
仍坐在电脑桌前,表情庄重。
作为React
社区最出名的布道者,此时正遭逢一场不小的变故 —— 他领有38w粉丝的推特账号被影子封禁了。
所谓影子封禁,是指粉丝无奈在流中刷到被封禁者的任何推文,只能点进被封禁者的账号能力看到新推文
在RSC
(React Server Component)个性公布后,Dan
常常用这个账号科普各种RSC
常识。这次封禁,显然对他的布道事业造成不小打击,不得已只能启用新账号。
尽管新账号粉丝不多,但值得宽慰的是 —— 这篇题为The Two Reacts的RSC布道文
数据还不错。
这篇文章通过解释世界上存在2个React
:
- 在客户端运行的
React
,遵循UI = f(state)
,其中state
是状态,是可变的 - 在服务端运行的
React
,遵循UI = f(data)
,其中data
是数据源,是不变的
来论证RSC
的必要性(他为服务端运行的React
提供了底层技术支持)。
宁静的夜总是让人思路良多,Dan
合上MacBook Pro
,回想起当年加入行业会议,在会议开始前一周才实现演讲所需的Demo
(也就是Redux
的雏形)。也正是以这次参会为契机,他才得以退出Meta伦敦
,进入React外围团队
。
随后,Dan
又回想起在React Conf 2018
介绍Hook
个性时,台下观众惊喜的欢呼。
想到这里,不禁又感叹 —— 已经并肩战斗的战友们都已各奔东西。
Redux
的联结作者Andrew Clark
来到了(入职Vercel
),Hook
的作者sebastian markbåge
也来到了(入职Vercel
),连本人最终也来到了(入职bluesky
)。
尽管React
仍是前端畛域最热门的框架,但一些奥妙的货色仿佛在缓缓变动,是什么变了呢?
收费支付卡颂原创React教程(原价359)、退出人类高质量前端群
React正迎来本人口碑的拐点
作为一款11岁高龄的前端框架,React
正迎来本人口碑的拐点。
近期,有多名包含出名库作者、React18工作组
成员在内的社区外围用户公开表白了对React
的批评,比方:
- Increasingly miffed about the state of React
- Kind of annoyed at React
- React, where are you going?
- The decline of React
- Concatenating text
有人会说,React
从诞生伊始至今从不乏批评的声音,有什么少见多怪的?
这其中的区别其实十分大。从React
诞生伊始至今,批评通常是开发者与React外围团队
的理念之争,比方:
JSX
到底好不好用?这是理念之争- 用
Class Component
还是Function Component
?这是理念之争 - 要不要应用
Signal
技术?这还是理念之争
尽管开源我的项目都很器重开发者的反馈,但React
曾经不能算是一般开源我的项目,而是一个宏大的技术生态。
在这个生态中,开发者的不满实际上并不会波动React
的根本盘。因为决定开发者是否在我的项目中应用React的,并不是开发者本身好恶,而是公司考量技术生态后作出的自上而下的抉择。
所以,React
的根本盘是技术生态(而非开发者)。而形成技术生态的,则是生态中大大小小的开源作者/开源团队。
这一轮对React
的批评,多是核心技术生态的参与者收回的,他们才是撑持React
大厦的一根根柱子。
批评的次要起因是 —— React团队
将React
的倒退与一家商业公司(Vercel
)牢牢绑定。
这对于React外围团队成员
来说,是从大厂到独角兽的集体职场跃迁。但对宽广React技术生态
的开源作者/开源团队来说,则是被动与一家商业公司(Vercel
)绑定。
举个例子,RSC
中有个叫Server Actions
的个性,用于简化在服务端解决前端交互的流程。Vercel
是一家云服务公司,旗下的Next.js
反对Server Actions
能够完满符合自家Serverless
服务的场景。
但其余开源我的项目可能并不会从这个个性中受害。
再比方,React Bricks
的作者曾埋怨 —— 尽管外表上看,React
能够与Vite
联合,能够与React Router
联合(也就是Remix
的前身),一切都是自在的抉择。但下层的服务商示意:如果React Bricks
不能反对Next.js
,就不会再应用他。
换句话说,React
在逐步将本人的技术生态迁徙到Next.js
,而技术生态是公司技术选型的首要思考因素。如果开源库不被动融入Next生态
,公司在做技术选型时可能就不会思考这个库。
迫于市场的考量,会有很多原React生态
下的库迁徙到Next生态
,即便这么做并非库作者志愿(毕竟Next.js
的背地是一家商业公司)。
框架作者的镇压
如果说个别的开源库只能被动抉择是否追寻Next生态
,那还有一类开源库抉择与Next.js
侧面反抗,这就是Meta Framework
(元框架)。
所谓元框架,是指基于前端框架封装的性能更全的下层框架,比方:
- 框架
Vue
,元框架Nuxt.js
- 框架
React
,元框架Remix
、Next.js
- 框架
Solid.js
,元框架SolidStart
- 框架
Svelte
,元框架SvelteKit
还有些框架自身就是元框架,比方Angular
、Astro
。
从NPM年下载量
看,Next.js
对这些竞品根本呈碾压之势(下表绿色是Next
):
造成以后场面有多少是因为Next.js相比其余元框架体现更杰出咱们不得而知,但有一点能够必定 —— React生态
向Next生态
的迁徙对造成以后场面肯定奉献了不少。
参考下图,黄色(React
年下载量)对绿色(Next
年下载量)的提携:
元框架的竞争曾经逐步白热化,当初甚至呈现了生成元框架的框架 —— vinxi。
你能够抉择框架(React
、Vue
、Solid
...),再抉择利用场景(客户端、SSR
、SSG
...)以及一些个性化配置,vinxi
会为你生成一个独属于你的元框架。
顺便一提,SolidStart
就是基于vinxi
构建的。
后记
对React将技术生态向Next迁徙的不满在社区曾经酝酿已久,并在近期迎来了暴发。短暂来看,这种不满必将影响React
的根基 —— 技术生态。
但从上帝视角来看,没有人是真正在意React
的:
- 开发者只在意是否能稳固、高效实现工作
- 开源作者只在意技术生态市场是否够大(不能被多数公司垄断)
React外围团队成员
在意的是本人的职业前景- 元框架作者在意的是从
Next
无奈顾及的细分场景切一块蛋糕
React
就像一个被开采了11年的金矿,开采的各方都有所埋怨,同时又不停下手中挥动的铁镐。
当React
将技术生态逐步迁徙到Next生态
后,React
的身影将只存在于一些细节中,比方:
Hook
的执行程序不能变- 严格模式下组件会
render
两次 - 相比其余框架更低的性能
作为一家商业公司,将来Vercel
会不会为了市场考量逐步优化这些个性(比方引入Signal
)?
如果说React
将来肯定会隐没,那他的死必不会像烟花那样猝不及防而又璀璨(就像谷歌发表研发Angular2
后,Angular1
在关注度最高时迎来了他的死亡)。
更可能的状况是像忒修斯之船一样,在航行的过程中一直更换老旧的木条,最终在悄无声息中逐步隐没......