乐趣区

关于前端:11岁的React正迎来自己口碑的拐点

凌晨 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,元框架RemixNext.js
  • 框架Solid.js,元框架SolidStart
  • 框架Svelte,元框架SvelteKit

还有些框架自身就是元框架,比方AngularAstro

NPM 年下载量 看,Next.js对这些竞品根本呈碾压之势(下表绿色是Next):

造成以后场面有多少是因为 Next.js 相比其余元框架体现更杰出 咱们不得而知,但有一点能够必定 —— React 生态 Next 生态 的迁徙对造成以后场面肯定奉献了不少。

参考下图,黄色(React年下载量)对绿色(Next年下载量)的提携:

元框架的竞争曾经逐步白热化,当初甚至呈现了 生成元框架的框架 —— vinxi。

你能够抉择框架(ReactVueSolid…),再抉择利用场景(客户端、SSRSSG…)以及一些个性化配置,vinxi会为你生成一个独属于你的元框架。

顺便一提,SolidStart就是基于 vinxi 构建的。

后记

React 将技术生态向 Next 迁徙 的不满在社区曾经酝酿已久,并在近期迎来了暴发。短暂来看,这种不满必将影响 React 的根基 —— 技术生态。

但从上帝视角来看,没有人是真正在意 React 的:

  • 开发者只在意是否能稳固、高效实现工作
  • 开源作者只在意技术生态市场是否够大(不能被多数公司垄断)
  • React 外围团队成员 在意的是本人的职业前景
  • 元框架作者在意的是从 Next 无奈顾及的细分场景切一块蛋糕

React就像一个被开采了 11 年的金矿,开采的各方都有所埋怨,同时又不停下手中挥动的铁镐。

React 将技术生态逐步迁徙到 Next 生态 后,React的身影将只存在于一些细节中,比方:

  • Hook的执行程序不能变
  • 严格模式下组件会 render 两次
  • 相比其余框架更低的性能

作为一家商业公司,将来 Vercel 会不会为了市场考量逐步优化这些个性(比方引入Signal)?

如果说 React 将来肯定会隐没,那他的死必不会像烟花那样猝不及防而又璀璨(就像谷歌发表研发 Angular2 后,Angular1在关注度最高时迎来了他的死亡)。

更可能的状况是像忒修斯之船一样,在航行的过程中一直更换老旧的木条,最终在悄无声息中逐步隐没 ……

退出移动版