大家好,我卡颂。
遐想前几年,不论是React
还是Vue
,都在疾速迭代版本,以至于很多同学埋怨学不动了。
而当初,React
曾经一年没更新稳固release
了。
甚至有人认为,这就是前端已死最间接的证据:
那么,React
最近一年为什么不发版了呢?是因为前端框架畛域曾经没有新活儿可整了么?React v19
是不是遥遥无期了?
欢送围观朋友圈、退出人类高质量前端交换群,带飞
最近一年React沉闷吗?
不想看长文章的同学,这里一句话总结本文观点:
React
之所以一年没发版,并不是因为无活可整,而是在实现框架从UI
库到元框架的转型
首先,咱们来看看,最近这一年React
的更新活跃度是否升高?
从代码push
量来看,最近一年甚至比release
产出较多的前几年更沉闷:
既然更沉闷,那React
这段时间到底在做什么呢?从代码增删行数能够一窥端倪,其中:
- 绿色柱状代表代码减少行数
- 红色柱状代表代码缩小行数
- 红色折线代表代码行数总体趋势
从代码量变动来看,React
历史上大体分为四个期间:
- 13年开源,到17年之前的性能迭代期
- 继续到18年的重构期(重构
React Fiber
架构) - 18~22年基于
Fiber
架构的新性能迭代期 - 22年至今的重构期
性能迭代期与重构期的区别在于:
- 前者次要是在稳固的架构上迭代新个性
- 后者个别重构底层架构的同时,重构老个性
激烈的代码量稳定通常产生在重构期。比方,在最近的重构期内,PR #25774删除了3w行代码。
这个PR
次要扭转React
对于同一个子包,同时领有.new
、.old
两个文件的开发模式
最近一年React都在干啥?
明确了React
最近一年处于重构期。那么,到底是重构什么呢?
答案是 —— 将RSC
(React Server Component
,服务端组件)接入以后React
体系内。
有同学会问:RSC
只是个相似SSR
的个性,为什么要实现他还波及重构?
这是因为RSC
不仅是一个个性,更是React
将来次要的倒退方向,其意义不亚于Hooks
。所以,围绕RSC
的迭代波及大量代码的重构。比方:
SSR
相干代码须要批改SSR
代码批改导致Suspense
组件代码批改Suspense
的批改又牵扯到useEffect
回调触发机会的变动
能够说是牵一发而动全身了。
RSC为什么重要
为什么RSC
对React
这么重要?要答复这个问题,得从开源我的项目的倒退聊起。
开源我的项目要想获得成功,肯定须要满足指标用户(开发者)的需要。
晚期,React
作为前端框架,满足了UI
开发的需要。在此期间,React
团队的迭代方向次要是:
- 摸索更清晰的开发范式(公布了
Error Boundray
、Suspense
、Hooks
) - 修补代码(公布新的
Context
实现) - 优化开发体验(公布
CRA
) - 底层优化(重构
Fiber
架构)
能够发现,这些迭代内容中大部分(除了底层优化)都是间接面向一般开发者的,所以React
文档(文档也是面向开发者的)中都有体现,开发者通过文档能直观的感触到React
一直迭代。
随着前端畛域的倒退,逐步涌现出各种业务开发的最佳实际,比方:
- 状态治理的最佳实际
- 路由的最佳实际
SSR
的最佳实际
一些框架开始整合这些最佳实际(比方Next.js
、Remix
,或者国内的Umijs
...)
到了这一时期,开发者更多是通过应用这些框架间接应用React
。
感触到这一变动后,React
团队的倒退方向逐步变动 —— 从面向开发者的前端框架变为面向下层框架的元框架。
倒退方向变动最显著的体现是 —— 文档中新出的个性一般开发者很少会用到,比方:
useTransition
useId
useMutableSource
这些个性都是作为元框架,给下层框架(或库)应用的。
上述个性尽管一般开发者很少用到,但至多文档中提及了。但随着React
一直向元框架方向倒退,即便出了新个性,文档中曾经不再提及了。比方:
useOptimistic
useFormStatus
上述两个Hook
想必大部分同学都没听过。他们是React
源码中切实存在的Hook
。但因为是元框架理念下的产物,所以React
文档并未提及。相同,Next.js文档中能够看到应用介绍。
总结
React
之所以曾经一年没有公布稳固release
,是因为倒退方向曾经从面向开发者转型为面向下层框架。
在此期间的更新都是面向下层框架,所以开发者很难感知到React
的变动。
但这并不能阐明React
进行迭代了,也不能据此认为前端倒退的停滞。
如果肯定要定量察看React
最近一年的倒退,间隔React v19
里程碑,曾经大体过半了: