谷歌发布 Angular v22:Signal Forms 稳定,默认启用 OnPush 并加入实验性 WebMCP

Angular v22 已于 2026 年 6 月 3 日发布,Signal Forms 从实验阶段转为稳定 API,OnPush 成为默认变更检测策略,同时加入面向浏览器 AI agent 的实验性 WebMCP 支持。

Angular 官方发布页显示,Angular v22.0.0 已于 2026 年 6 月 3 日发布,目前处于 Active 支持阶段。该版本把 Signal Forms 的核心 API 标记为 v22.0 起稳定,同时将 ChangeDetectionStrategy.OnPush 设为组件默认策略,并加入面向 WebMCP 的实验性支持。

谷歌发布 Angular v22:Signal Forms 稳定,默认启用 OnPush 并加入实验性 WebMCP主题相关图片
图片来自:哔哩哔哩

Signal Forms 以可写 signal 保存表单模型,form() 返回与模型结构对应的字段树,并把字段绑定、状态和校验组织在同一套响应式模型上。Angular 官方文档将其能力概括为自动同步表单数据、类型安全的字段访问和基于 schema 的校验。对于已经使用 Reactive Forms 的项目,官方仍将 Reactive Forms 列为稳定方案,因此升级 Angular v22 不等于必须重写现有表单。

变更检测的默认值变化更直接:如果组件没有显式指定策略,v22 会采用 OnPush。官方说明,OnPush 组件通常在模板绑定带来新的输入、组件或其子树处理事件,或代码显式调用 markForCheck 等通知时重新检查;模板读取的 signal 发生变化时,Angular 也会自动把相关组件标记为待检查。需要保持积极检查语义的组件可以显式使用 ChangeDetectionStrategy.Eager,而 ChangeDetectionStrategy.Default 已被标记为 deprecated,并作为 Eager 的等价值保留。

对存量项目,升级时需要关注组件是否依赖旧的 Eager 行为。Angular 官方 v22 迁移配置提供了 change-detection-eager 迁移,描述为给组件加入 ChangeDetectionStrategy.Eager;团队仍应结合迁移结果检查输入更新、可变对象引用和手动修改输入等路径,确认视图刷新行为符合预期。

WebMCP 则把 Angular 的 AI 集成推进到浏览器工具层。Angular 将 WebMCP 定义为仍在演进的 Web 标准,并提供实验性 API,让应用注册与依赖注入生命周期关联的工具;在 Signal Forms 中,开发者可以启用 provideExperimentalWebMcpForms(),再在 form() 的选项中设置 experimentalWebMcpTool,将现有表单选择性暴露为工具。

在这条路径下,Angular 会根据表单模型的初始值生成 JSON Schema,并从 required 等规则推断必填字段,同时连接表单验证和提交处理。官方文档也列出了边界:模型中的 nullundefined 无法用于推断数据类型,空数组无法推断元素类型,异步校验器不会被触发,应在提交 action 中自行处理。由于 WebMCP 及其 Angular API 仍处于 experimental 阶段,接口可能继续变化,更适合先在隔离场景中验证。

整体来看,Angular v22 将 signals、按需变更检测和浏览器端 AI 工具暴露放进了同一条开发路径。新项目可以直接评估 Signal Forms 与 OnPush 的组合;存量项目则应先完成迁移检查,再决定是否引入实验性的 WebMCP 能力。