Angular 20 Skill 是一份围绕 Angular 20 开发的结构化知识与最佳实践指南,旨在为开发者在 Angular 20 项目中提供统一的工作流、常见模式、质量标准和示例模板。
【用途】 该技能用于在以下场景中提供指导:开发 Angular 20 应用、搭建新的 Angular 项目、实现组件、路由与状态管理、优化性能、编写测试以及部署 Angular 应用。当被问及 Angular 20 开发、架构、组件、路由、状态管理等内容时适用。
【核心概念】 技能涵盖 Angular 20 的特性与变化、TypeScript 优先的架构、standalone 组件、Signals 与响应式、组合式 API,以及 Angular CLI 工作流。
【规则与主要能力】
- 组件架构:所有新组件必须使用 standalone 组件,并在装饰器中使用 standalone: true,必须在 imports 数组中显式导入依赖;新代码中禁止使用基于 NgModule 的组件声明。
- 状态管理:本地状态必须使用 Signals,包括用 signal() 表示组件级响应式状态、用 computed() 表示派生状态、用 effect() 处理副作用;全局状态必须使用 @ngrx/signals,禁止使用自定义状态管理方案。
- 路由:大型模块必须使用懒加载路由,功能模块必须懒加载,使用 loadChildren 或 loadComponent;必须实现预取策略以优化性能。
- HTTP 与 API:必须使用带类型响应的 HttpClient,所有 HTTP 调用必须指定响应类型;API 服务必须集中管理 HTTP 逻辑,且所有 HTTP 调用必须实现错误处理。
- 测试:必须包含单元测试,使用 Jasmine/Karma 或 Jest,组件必须有对应的 spec 文件;关键流程必须包含 E2E 测试,使用 Playwright。
- 性能:生产环境必须使用 AOT 编译,生产构建必须使用 ng build 并启用 AOT;在适用情况下使用 OnPush 变更检测,使用 Signals 的组件应使用 ChangeDetectionStrategy.OnPush。
- 可访问性:必须遵循无障碍(a11y)准则,模板必须符合 WCAG 标准,交互元素必须支持键盘操作。
- 构建与部署:必须使用 Angular CLI 进行构建,使用 ng build 生成生产产物;必须配置环境特定设置,为开发、预发布和生产环境分别配置。
【使用方式】 可通过 Angular CLI 创建新项目:ng new your-app --routing --style=scss。组件与模板方面使用 standalone 组件、保持模板简洁、遵循可访问性准则;路由方面设置 RouterModule 与路由、对大型模块使用懒加载、实现预取策略;状态方面优先使用 Signals 管理本地状态、考虑用 @ngrx/signals 管理全局状态;HTTP 方面使用带类型响应的 HttpClient 并集中 API 服务层与错误处理;测试方面使用 Jasmine/Karma 或 Jest 做单元测试、使用 Playwright 做 E2E 测试;性能方面使用 AOT 编译、用 ng build 优化打包、适用时使用 OnPush;部署方面使用 ng build 生成产物、通过静态托管或 CDN 提供、配置环境特定设置。
【示例代码】 示例 standalone 组件展示了 standalone: true、imports 数组以及 @if 模板语法与 signal 状态;示例响应式表单展示了 inject(FormBuilder) 与 ReactiveFormsModule 的用法;示例 API 服务展示了 Injectable、inject(HttpClient) 以及返回 Observable 的 getData 方法。
【安装路径】 项目级技能:.github/skills/angular-20/SKILL.md;个人全局技能:~/.github/skills/angular-20/SKILL.md。Copilot 会根据提示内容自动加载该技能。
【限制】 本技能以规则与示例形式提供开发指导,具体价格、平台支持范围、效果保证等未在资料中提供。官方文本为空,建议参考官方 Angular 文档与社区标准以获取不断演进的最佳实践。