React不再是JavaScript框架的無可爭議冠軍
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
過去幾年里,前端開發(fā)已悄然進入新階段。React 曾是 JavaScript 框架的無可爭議的冠軍,如今正面臨挑戰(zhàn)。現(xiàn)代瀏覽器功能更強大,開發(fā)者更加挑剔,形勢即將明朗。 與此同時,各種工具表明,構(gòu)建快速、可維護、交互式應(yīng)用的方法不止一種。 那么,React 是否正被取代?并非如此。但我們確實看到了轉(zhuǎn)變——一個“后 React 時代”——這并非由 React 的消失定義,而是由其壟斷地位的喪失定義。本文探討了這究竟意味著什么。 React 不再是唯一答案十多年來,React 塑造了我們編寫前端代碼的方式。它以組件化模型、虛擬 DOM 和強大的狀態(tài)生態(tài)系統(tǒng)重新定義了 UI 架構(gòu)。但 React 建立的基礎(chǔ)假設(shè)現(xiàn)在正受到審視。當(dāng)原生 DOM 變得更快、更一致時,我們是否還需要虛擬 DOM?每個交互都必須依賴hydration和 JavaScript 密集型抽象嗎? 隨著開發(fā)者尋求更輕量、更快的替代方案,這些問題正被認真提出。React 的“一刀切”主導(dǎo)地位正在讓位于更符合 Web 原生的方法,這些方法擁抱簡單性。并非 React 不好——而是前端格局已經(jīng)演變。
我們曾經(jīng)需要用來修復(fù)瀏覽器不一致性的工具,現(xiàn)在正在解決它們可能造成的問題。隨著框架和開發(fā)者重新思考舊模式,前端不再是“默認 React”。 Remix 的轉(zhuǎn)向預(yù)示著更廣泛的轉(zhuǎn)變當(dāng) Remix v3 在其架構(gòu)的某些部分宣布轉(zhuǎn)向脫離 React時,引發(fā)了新一輪討論。該公告并非對 React 的譴責(zé),而是一種務(wù)實的步驟,旨在重新思考假設(shè)。Remix 很久以來一直被視為基于 React 的全棧框架——但這個標簽一直有些誤導(dǎo)性。Remix 團隊首先圍繞 Web 平臺構(gòu)建,React 更多是作為實現(xiàn)細節(jié)而非金科玉律。 他們最近的轉(zhuǎn)變反映了一種更深刻的認識:我們并非處處都需要 React。服務(wù)器端渲染、原生 DOM 操作、漸進增強——這些都是 Web 平臺現(xiàn)在相當(dāng)能自行處理的。 Remix 決定依靠這種優(yōu)勢,而不是用抽象密集型模式與之對抗,這是一個警鐘。開發(fā)者已厭倦 hydration 開銷、狀態(tài)管理復(fù)雜性和為簡單任務(wù)過度工程化。 相反,像 Remix 這樣的框架正回歸基礎(chǔ):HTML 優(yōu)先渲染、通過標準瀏覽器 API 的聲明式數(shù)據(jù)獲取,以及服務(wù)器優(yōu)先的路由邏輯。這并不意味著 React 被拋棄,而是意味著 React 現(xiàn)在是可選的。這為更模塊化、可組合的方法敞開了大門,其中 React 只是眾多工具之一,而不是所有事物的基石。 HTML 優(yōu)先和原生 DOM 框架的興起React 誕生于瀏覽器不一致、JavaScript 是提供交互式體驗的唯一可靠方式的時期。但現(xiàn)代瀏覽器已成熟。form.submit()、fetch、Web Components 和 View Transitions API 等API意味著,我們無需每次都依賴組件框架即可構(gòu)建引人入勝的體驗。 這就是為什么 HTML 優(yōu)先的框架正在興起。像 Astro、HTMX 和 Enhance 這樣的工具正在顛覆現(xiàn)狀。它們優(yōu)先考慮最小化 JavaScript、服務(wù)器渲染的 HTML 和漸進增強。它們沒有將 DOM 視為需要抽象處理的“骯臟伎倆”,而是將其視為一等公民。交互性僅在需要時才疊加其上。 例如,Astro 讓你默認無需傳輸任何 JavaScript。HTMX 可以在沒有客戶端框架的情況下,將你的現(xiàn)有 HTML 轉(zhuǎn)換為響應(yīng)式界面。這些工具更符合當(dāng)今 Web 的性能和可訪問性需求。它們并非試圖完全取代 React,而是更高效地解決不同的問題。“要么 React,要么什么都沒有”的時代已經(jīng)結(jié)束。 React 服務(wù)器組件的賭注React 并未袖手旁觀。它的創(chuàng)造者也看到了這種轉(zhuǎn)變,并推出了自己的反敘事:React 服務(wù)器組件(RSC)。其理念是更智能地在服務(wù)器和客戶端之間拆分應(yīng)用,僅向瀏覽器發(fā)送絕對必要的內(nèi)容。這承諾了更好的性能、更小的捆綁包、改進的開發(fā)者體驗,以及通過減少負載和服務(wù)器壓力可能有助于優(yōu)化云成本。 但 RSC 引發(fā)了自身的分裂。它極大地改變了 React 應(yīng)用的構(gòu)建方式。它破壞了與現(xiàn)有模式、工具甚至心智模型的兼容性。在現(xiàn)有應(yīng)用中采用 RSC 的復(fù)雜性不容小覷。它還使開發(fā)者更緊密地鎖定在 Next.js 等元框架中,這些框架已經(jīng)為 React 添加了抽象層。 一些開發(fā)者覺得 RSC 是一種重新發(fā)明,解決了 React 一開始創(chuàng)造的問題。hydration 問題?虛擬 DOM 效率低下?這些都是 React 最初推廣的客戶端密集型模式的產(chǎn)物。RSC 旨在糾正這一點,但代價是失去了簡單性。這種賭注是否會成功還有待觀察——尤其是當(dāng)其他框架用更少的儀式達到類似結(jié)果時。 框架跳出 JSX 的思維定式JSX 曾經(jīng)感覺很神奇。它讓開發(fā)者在 JavaScript 中編寫類似 HTML 的語法,模糊了邏輯和標記之間的界限。但這種模糊在某些情況下現(xiàn)在感覺像是一種負擔(dān)。開發(fā)者正在重新考慮,是否真的有必要將渲染邏輯與有狀態(tài)組件緊密耦合在每個項目中。 以 SolidJS、Qwik 或 Svelte 為例——每個都在重新定義組件的編譯、渲染或恢復(fù)方式。Svelte 在構(gòu)建時進行編譯。Qwik 引入了可恢復(fù)性,以實現(xiàn)近乎即時的交互性。Solid 完全繞過虛擬 DOM,實現(xiàn)細粒度的響應(yīng)性。 即使是 Lit 和Web Components也迎來了第二春,由 React 抽象出的平臺所倡導(dǎo)。而且,讓我們不要忽視原生 DOM API 本身——它們遠未死亡,正在沒有 JavaScript 密集型棧的情況下驅(qū)動更精簡、更快的應(yīng)用。 JSX 仍然有擁躉,但工具的單一種族文化正在瓦解。 React 仍是王者嗎?在職位列表、npm 下載和 GitHub 星標方面,React 仍然占據(jù)主導(dǎo)地位。其生態(tài)系統(tǒng)成熟;對于具有復(fù)雜狀態(tài)的大型應(yīng)用,它仍然是一個穩(wěn)妥的選擇。但它的主導(dǎo)地位不再是絕對的。我們看到工具、理念和權(quán)衡取舍正在多樣化。 我們見證的并非王權(quán)的更迭,而是去中心化。React 不再是默認答案。前端領(lǐng)域正在再次變得多語言——選擇技術(shù)棧現(xiàn)在意味著要問你需要什么樣的交互性、哪些約束很重要,以及你喜歡什么樣的開發(fā)者體驗。 對于許多團隊來說,React 仍然是合適的工具。但對于其他人來說,回歸更簡單、更原生的 Web 方法正在帶來更好的性能、更快的開發(fā)和更低的認知開銷。 結(jié)語“后 React”并不意味著 React 已過時——它只是意味著我們現(xiàn)在正在超越 React 進行思考。這意味著我們承認 React 的解決方案并不總是理想的,并且替代方案已經(jīng)成熟到足以真正地挑戰(zhàn)它。這是一種思維方式的轉(zhuǎn)變:從框架優(yōu)先轉(zhuǎn)向 Web 優(yōu)先。 這并非 React 的終結(jié),而是更廣泛、更豐富的前端生態(tài)系統(tǒng)的開始。在這個生態(tài)系統(tǒng)中,開發(fā)者有權(quán)使用適合工作的正確工具——即使那個工具只是一個
閱讀原文:原文鏈接 該文章在 2025/7/14 18:50:47 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |