凌晨 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
在关注度最高时迎来了他的死亡)。
更可能的状况是像忒修斯之船一样,在航行的过程中一直更换老旧的木条,最终在悄无声息中逐步隐没 ……