掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
大家好,我卡頌。

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、防城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、商城開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為防城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
遙想前幾年,不管是React還是Vue,都在快速迭代版本,以至于很多同學(xué)抱怨「學(xué)不動了」。
而現(xiàn)在,React已經(jīng)一年沒更新穩(wěn)定release了。
上一次發(fā)版還是22年6月
甚至有人認為,這就是「前端已死」最直接的證據(jù):
那么,React最近一年為什么不發(fā)版了呢?是因為前端框架領(lǐng)域已經(jīng)沒有新活兒可整了么?React v19是不是遙遙無期了?
不想看長文章的同學(xué),這里一句話總結(jié)本文觀點:
React之所以一年沒發(fā)版,并不是因為無活可整,而是在完成框架從UI庫到元框架的轉(zhuǎn)型
首先,我們來看看,最近這一年React的更新活躍度是否降低?
從代碼push量來看,最近一年甚至比release產(chǎn)出較多的前幾年更活躍:
既然更活躍,那React這段時間到底在做什么呢?從「代碼增刪行數(shù)」可以一窺端倪,其中:
從代碼量變化[1]來看,React歷史上大體分為四個時期:
「功能迭代期」與「重構(gòu)期」的區(qū)別在于:
「劇烈的代碼量波動」通常發(fā)生在「重構(gòu)期」。比如,在最近的重構(gòu)期內(nèi),PR #25774[2]刪除了3w行代碼。
這個PR主要改變React對于同一個子包,同時擁有.new、.old兩個文件的開發(fā)模式
明確了React最近一年處于重構(gòu)期。那么,究竟是重構(gòu)什么呢?
答案是 —— 將RSC(React Server Component,服務(wù)端組件)接入當(dāng)前React體系內(nèi)。
有同學(xué)會問:RSC只是個類似SSR的特性,為什么要實現(xiàn)他還涉及重構(gòu)?
這是因為RSC不僅是一個特性,更是React未來主要的發(fā)展方向,其意義不亞于Hooks。所以,圍繞RSC的迭代涉及大量代碼的重構(gòu)。比如:
可以說是牽一發(fā)而動全身了。
為什么RSC對React這么重要?要回答這個問題,得從開源項目的發(fā)展聊起。
開源項目要想獲得成功,一定需要滿足目標(biāo)用戶(開發(fā)者)的需求。
早期,React作為前端框架,滿足了UI開發(fā)的需求。在此期間,React團隊的迭代方向主要是:
可以發(fā)現(xiàn),這些迭代內(nèi)容中大部分(除了底層優(yōu)化)都是直接面向普通開發(fā)者的,所以React文檔(文檔也是面向開發(fā)者的)中都有體現(xiàn),開發(fā)者通過文檔能直觀的感受到React不斷迭代。
隨著前端領(lǐng)域的發(fā)展,逐漸涌現(xiàn)出各種業(yè)務(wù)開發(fā)的最佳實踐,比如:
一些框架開始整合這些最佳實踐(比如Next.js、Remix,或者國內(nèi)的Umijs...)
到了這一時期,開發(fā)者更多是通過使用這些框架間接使用React。
感受到這一變化后,React團隊的發(fā)展方向逐漸變化 —— 從「面向開發(fā)者」的前端框架變?yōu)椤该嫦蛏蠈涌蚣堋沟脑蚣堋?/p>
發(fā)展方向變化最明顯的表現(xiàn)是 —— 文檔中新出的特性普通開發(fā)者很少會用到,比如:
這些特性都是作為元框架,給上層框架(或庫)使用的。
上述特性雖然普通開發(fā)者很少用到,但至少文檔中提及了。但隨著React不斷向元框架方向發(fā)展,即使出了新特性,文檔中已經(jīng)不再提及了。比如:
上述兩個Hook想必大部分同學(xué)都沒聽過。他們是React源碼中切實存在的Hook。但由于是元框架理念下的產(chǎn)物,所以React文檔并未提及。相反,Next.js文檔[3]中可以看到使用介紹。
React之所以已經(jīng)一年沒有發(fā)布穩(wěn)定release,是因為發(fā)展方向已經(jīng)從「面向開發(fā)者」轉(zhuǎn)型為「面向上層框架」。
在此期間的更新都是面向上層框架,所以開發(fā)者很難感知到React的變化。
但這并不能說明React停止迭代了,也不能據(jù)此認為前端發(fā)展的停滯。
如果一定要定量觀察React最近一年的發(fā)展,距離React v19里程碑,已經(jīng)大體過半了:
[1]代碼量變化:https://ossinsight.io/analyze/facebook/react/#commits。
[2]PR #25774:https://github.com/facebook/react/commit/420f0b7fa1fcc609fc7b438c4599d0f76fab4bc0。
[3]Next.js文檔:https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions#experimental-useoptimistic。

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流