Angular 重磅回歸,能否重回巔峰?
曾經 React、Vue、Angular 在前端框架領域三足鼎立,然而時過境遷,如今的排名已經發生了翻天覆地的變化。Angular 被擠出前三,Next.js 異軍突起,成功上位成為前端第二框架,與 React 和 Vue 共同領跑。面對這一局面,Angular 終于“坐不住了”,宣布正在與谷歌內部的另一個前端框架 Wiz (暫未開源)進行合并,旨在打造一個更加強大的前端框架。
在谷歌內部,Angular 和 Wiz 都擁有龐大的用戶群體,被數千名工程師和數千個應用所青睞。Wiz 作為谷歌的內部框架,在一些最受歡迎的產品中發揮著重要作用,如搜索、照片、支付等。在過去的一年里,谷歌一直在積極探索如何將 Angular 與 Wiz 的優勢相互融合,以期在性能與開發體驗上取得雙重突破。
從歷史上看,Angular 和 Wiz 一直服務于不同領域的應用:
- Wiz 專注于性能關鍵型應用,以谷歌搜索為例,它追求的是快速渲染結果和較低的交互性。
- Angular 則致力于為高度交互性的應用提供強大支持,它強調開發者體驗和復雜用戶界面的快速交付。諸如 Gemini 和 Google Analytics 等應用,便是 Angular 在這一領域所取得的成就的例證。
Wiz 是什么?
數百萬用戶通過慢速網絡或低端設備訪問谷歌的大型應用,因此初始加載延遲和 JavaScript 的數量顯得尤為重要。為了滿足這些要求,Wiz 框架巧妙地采取了幾種優化手段。首先,Wiz 以服務端渲染為基礎,采用高度優化的流式解決方案,確保頁面上的所有內容,包括交互式組件,都能迅速且流暢地呈現,從而大幅減少了關鍵初始渲染路徑上的 JavaScript 數量。
此外,Wiz 還采取了按需加載的策略,只加載實際在頁面上渲染的交互式組件所需的 JavaScript 代碼,有效避免了不必要的 JavaScript 加載,進一步提升了性能。同時,為了確保用戶事件不會因客戶端的加載延遲而丟失,Wiz 在根目錄下引入了一個輕量級的內聯庫,用于監聽并回放用戶事件。
這種以服務器端渲染為主導的優化方法,不僅為用戶帶來了出色的性能體驗,同時也兼顧了應用的交互性。然而,這種方法確實增加了一定程度的開發復雜性,尤其是在構建高度交互式的應用時。因此,在利用Wiz框架進行開發時,開發者需要仔細權衡性能與復雜性的關系,以實現最佳的優化效果。
融合的需求
近期,這兩大領域正逐漸融合。高性能應用為了向用戶提供更多價值并保持其活躍度,必須加快功能發布的速度。而與此同時,高度交互式的應用也在不斷增加 JavaScript 的使用量。根據 HTTPArchive 的數據,過去六年間,桌面端的 JavaScript 使用量增長了超過37%,移動端則增長了超過 36%,這無疑對應用的性能造成了顯著影響。
前 100 萬個網站中 JavaScript 的增加
在融合的需求背景下,開發者們面臨著一個難題:如何選擇一個既能滿足性能要求又能提供良好開發體驗的框架? 隨著用例重疊的不斷增加,這一挑戰愈發突出。為了回應市場對高性能框架和卓越開發者體驗的雙重需求,Angular 與 Wiz 強強聯手,將二者的優勢完美融合。展望未來,Angular 開發者將無需再為在開發體驗與性能之間做取舍而犯難,因為他們將得到兩者的最佳組合。
融合兩大領域
Angular 與 Wiz 的合作關系,正是他們致力于幫助開發者自信構建 Web 應用的使命的體現。他們根據開發者的反饋,積極尋求機會,將他們在 Google 發現的最佳 Web 開發實踐進行開源分享。同時,也希望將 Angular 社區卓越的開發體驗推廣到整個 Google。
在實踐中,這表現為對每個框架的逐步改進。。大家可能已經見證了他們與 Angular 最新變更合作的成果,如可延遲視圖和對部分水化的探索。這些成果深受 Wiz 精細化代碼加載和事件委托庫的啟發。
此外,Wiz也采納了 Angular 的 Signals 庫,該庫現已成為運行在數十億設備上的YouTube用戶界面的強大支撐。通過 Angular Signals,Wiz 實現了更為精細化的 UI 更新,摒棄了那種依賴開發者逐一記錄UI更新中運行的代碼路徑的繁瑣方式,取得了顯著的性能提升。
展望未來
Angular 團隊已經設定了明確的長期目標:在未來幾年中,他們將逐步、負責任地將Angular與Wiz進行合并。通過 Angular 平臺,他們將穩步將 Wiz 的先進功能進行開源,并堅守開放開發的理念,確保社區能夠深度參與并影響產品的發展路線圖,同時根據此制定自己的計劃。為了廣泛收集社區對提議功能的真實反饋,他們將采用公開的RFC流程。這一切努力的核心目標,是不斷優化和提升 Angular 框架的性能與體驗。
Angular 團隊堅信服務端渲染(SSR)在 Web 平臺上的重要性。他們在打造諸如 Google 搜索和 YouTube 等全球熱門 Web 產品的過程中,已經深刻體驗到當SSR正確實施時,它能為最終用戶帶來極為積極的體驗。因此,邀請社區成員利用這些支持關鍵應用的核心庫進行創新實踐,與社區共同探索、共同創新,帶來更加卓越的 Web 性能體驗!
Angular 和 Wiz 的合并能否讓 Angular 重回巔峰?你用過 Angular 嗎?