作者 | Daniel Curtis
譯者 | 平川
Angular(谷歌用于構(gòu)建大型 Web 應(yīng)用程序的框架)已發(fā)布 Angular 21 版本,此次更新提升了響應(yīng)性,簡化了變更檢測遷移,并引入了 AI 驅(qū)動的開發(fā)工具。
Angular 21 引入了 Signal Forms,這是一個基于 Signal 的實驗性表單 API,旨在提高表單的可組合性和響應(yīng)性。Signal Forms 為構(gòu)建可擴(kuò)展的表單邏輯提供了一種全新的模式,可以避免傳統(tǒng)響應(yīng)式和模板驅(qū)動表單方法的一部分復(fù)雜性。Angular 團(tuán)隊對它的定位是一個可選的實驗性功能,并希望收集來自社區(qū)的反饋。
v21 的一個重大架構(gòu)變化是向 zoneless 變更檢測推進(jìn)。在 v21 之前,Angular 通過 zone.js 來升級某些瀏覽器操作,跟蹤應(yīng)用程序中的變更并更新 UI?,F(xiàn)在,由于 singals 為應(yīng)用程序中更多的狀態(tài)管理功能提供了支撐,所以不再需要 zone.js。Zoneless 變更檢測在 Angular v18 中作為實驗性功能加入,并在 v20.2 中達(dá)到穩(wěn)定,v21 將不再默認(rèn)包含 zone.js。
為了簡化遷移,Angular 提供了一個工具 onpush_zoneless_migration,可以分析代碼并生成推薦的遷移計劃。Angular 的網(wǎng)站 上還提供了完整的遷移指南,供需要遷移的人使用。
Angular 21 還致力于為開發(fā)人員提供進(jìn)行 AI 驅(qū)動開發(fā)的工具。該版本捆綁了一個交互式工具 ai_tutor,為使用 Angular 的開發(fā)人員提供 AI 驅(qū)動的學(xué)習(xí)助手;同時 Angular MCP 服務(wù)器提供了穩(wěn)定版和實驗版工具,使 AI 代理和大型語言模型能夠與 Angular 工作流集成。這些新增功能體現(xiàn)了團(tuán)隊對提升入門體驗、文檔檢索效率及編輯器內(nèi)輔助功能的重視。
該版本還包括打包好的 Tailwind 配置(用于搭建新項目)、改進(jìn)的 Vitest 支持,以及其他使開發(fā)體驗更加現(xiàn)代化的構(gòu)建和工具更新。
發(fā)布公告中還提到了可訪問性組件,其中包括 Angular Aria 組件庫的開發(fā)人員預(yù)覽版。該庫有 8 個 UI 模式和 13 個組件,可以根據(jù)應(yīng)用程序的特定樣式進(jìn)行定制。這是一個基于 signals 的庫,具備完全響應(yīng)式設(shè)計和無障礙特性。
在網(wǎng)上,人們?yōu)?Signal Forms 的發(fā)布 感而興奮,發(fā)布公告下有一位評論者認(rèn)為,zoneless 是“一場勝利”。有些開發(fā)人員表示,每年兩次的重大版本更新 讓人難以招架,但 另一些人 則對本次版本未作重大改動感到欣慰,因為這意味著框架的穩(wěn)定性有所提升。
對于計劃升級的團(tuán)隊,Angular更新指南 和遷移文檔提供了分步說明并推薦了工具。其中涵蓋了從基本應(yīng)用程序到高級單體存儲庫的場景,并重點介紹了如何通過 ng update 和 schematics 實現(xiàn)自動化遷移。
Angular 是一個由谷歌維護(hù)的、TypeScript 優(yōu)先的框架,在看重長期穩(wěn)定性、類型安全和結(jié)構(gòu)化架構(gòu)的企業(yè)應(yīng)用程序中應(yīng)用廣泛。在強(qiáng)化這些優(yōu)勢的同時,Angular 21 通過 Signals 推動框架實現(xiàn)更精細(xì)的響應(yīng)性,借助 zoneless 技術(shù)降低運行時開銷,并引入 AI 驅(qū)動的開發(fā)工作流。早期采用者應(yīng)在測試環(huán)境中評估 Signal Forms 及遷移工具。不過,本次發(fā)布提供了清晰的遷移路徑及自動化方案,可有效降低升級風(fēng)險。