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