我第一次掃 Angular 21 的 release note 有點看不懂主題:一下是表單,一下是無障礙,後面居然還接了 MCP。像是幾個團隊各自把功能塞進同一班車。後來逐項看,才發現它們都在處理同一種麻煩——那些每個 Angular 專案都要做、卻總是重複花力氣的基礎工作。
Angular 21 同時碰了幾個不同方向:Signal Forms 處理表單狀態、Angular Aria 提供無障礙互動基礎、Vitest 成為更重要的測試工具,另外還加入給 AI 工具使用的 MCP Server。
把它們放在一起看,其實都是在減少開發者重複處理基礎工作。表單有較一致的狀態方式、常見互動不用從零補無障礙,而 AI 助手也比較有機會讀到正確的 Angular 文件。
這些功能不一定每個都要立刻導入,但可以看出 Angular 的更新已不只追求框架功能,也開始處理測試、AI 輔助和使用者體驗。
其中我覺得 MCP Server 很能代表 2025 年的變化。過去文件只要讓人搜尋得到就好,現在還要考慮 agent 能不能拿到正確版本、辨識推薦寫法。它不會取代文件,但會讓「文件的讀者」多一種。
Signal Forms 則比較貼近日常。表單一直是 Angular 很完整、同時也容易顯得複雜的部分,新方案把狀態往 Signals 靠攏。舊 Reactive Forms 不會因此立刻消失,大型專案也不適合只因為新 API 就全面改寫。
Angular Aria 的方向也滿務實:官方提供互動和無障礙行為,視覺交給產品自己處理。這和整套有固定外觀的元件庫不同,對已有 Design System 的團隊會比較好接。
我會把這幾項功能分開導入,而不是因為它們同版發布就綁成一次 migration。Vitest 可以先從新測試開始,Aria 挑一個互動元件驗證,Signal Forms 則要等表單規格和第三方控制項都能配合。release note 是一起寫的,專案風險不需要一起承擔。
MCP 也要用同樣標準看待:它給 agent 更多上下文,並不代表產出的程式已被驗證。真正有價值的是減少查錯版本文件的機會,最後仍要靠 typecheck、測試和 code review 決定能不能合併。