Communitygithub.com

Angular 开发者指南

提供基于项目 Angular 版本的最佳实践、代码生成指南以及构建验证流程,覆盖组件、状态管理、路由、表单、测试等领域。

Angular 开发者指南 是什么?

该技能为 AI 代理提供了与 Angular 项目交互时遵循的一整套开发规范。它强调在执行任何任务前必须先分析项目的 Angular 版本,因为不同版本的最佳实践和可用 API 差异很大。技能文档详细描述了创建新项目时的严格执行规则:优先使用 npx 安装用户指定的版本,否则检查本地是否存在 Angular CLI 安装,最后才回退到 npx 获取最新版本。该技能还组织了丰富的参考文档,覆盖组件(基于信号的输入/输出、宿主元素)、响应式状态管理(signal、linkedSignal、resource、effect)、HTTP 通信(HttpClient 与 httpResource)、表单(优先使用信号表单)、依赖注入、管道、无障碍 ARIA 组件、路由(含守卫、加载策略、动画)以及样式(Tailwind CSS、动画)和测试(单元测试、组件 harness、路由测试、E2E 测试)。此外,还包括 Angular CLI、代码现代化迁移、MCP 服务器和环境配置等工具链指南。此技能适用于 Claude Code、Cursor、Codex 等 AI 编程代理,帮助它们在 Angular 项目中生成一致、可维护且符合官方风格指南的代码。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add dev-goraebap/krill

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Angular 开发者指南 是做什么的?

  1. 在提供指导前,务必分析项目的 Angular 版本,因为不同版本之间的最佳实践和可用功能可能存在显著差异。如果使用 Angular CLI 创建新项目,除非用户指定,否则不要指定版本。

  2. 生成代码时,遵循 Angular 的风格指南和最佳实践,以确保可维护性和性能。使用 Angular CLI 脚手架生成组件、服务、指令、管道和路由,确保一致性。

  3. 完成代码生成后,运行 ng build 确保没有构建错误。如果存在错误,分析错误信息并在继续之前修复它们。不要跳过此步骤,因为它对于确保生成的代码正确且功能正常至关重要。

创建新项目

如果用户未提供任何指南,以下是创建新 Angular 项目时应遵循的默认规则:

  1. 除非用户另有指定,否则使用最新的稳定版 Angular。
  2. 在新项目中使用信号表单进行表单管理(适用于 Angular v21 及更新版本)了解更多。

ng new 的执行规则: 当被要求创建新的 Angular 项目时,必须严格按照以下步骤确定正确的执行命令:

步骤 1:检查用户是否显式指定版本。

  • 如果 用户请求特定版本(例如 Angular 15),则绕过本地安装,严格使用 npx。
  • 命令: npx @angular/cli@<请求版本> new <项目名称>

步骤 2:检查是否存在已安装的 Angular。

  • 如果 未请求特定版本,则在终端中运行 ng version 以检查系统上是否已安装 Angular CLI。
  • 如果 命令成功并返回已安装的版本,则直接使用本地/全局安装。
  • 命令: ng new <项目名称>

步骤 3:回退到最新版本。

  • 如果 未请求特定版本,且 ng version 命令失败(表示不存在 Angular 安装),则必须使用 npx 获取最新版本。
  • 命令: npx @angular/cli@latest new <项目名称>

组件

当处理 Angular 组件时,根据任务查阅以下参考资料:

  • 基础:解剖、元数据、核心概念和模板控制流(@if、@for、@switch)。阅读 components.md
  • 输入:基于信号的输入、转换和模型输入。阅读 inputs.md
  • 输出:基于信号的输出和自定义事件最佳实践。阅读 outputs.md
  • 宿主元素:宿主绑定和属性注入。阅读 host-elements.md

如果上述引用中未找到更深入的文档,请阅读 https://angular.dev/guide/components 上的文档。

响应式与数据管理

当管理状态和数据响应式时,使用 Angular 信号并查阅以下参考资料:

  • 信号概述:核心信号概念(signal、computed)、响应式上下文和 untracked。阅读 signals-overview.md
  • 依赖状态(linkedSignal):创建连接到源信号的可写状态。阅读 linked-signal.md
  • 异步响应式(resource):将异步数据直接获取到信号状态中。阅读 resource.md
  • 副作用(effect):日志记录、第三方 DOM 操作(afterRenderEffect)以及何时不应使用 effect。阅读 effects.md

HTTP 通信

当与后端服务通信时,使用 Angular HTTP API 并查阅以下参考资料:

  • HTTP 客户端与资源:provideHttpClient、HttpClient、拦截器和 httpResource。阅读 http-client.md

表单

对于新应用,大多数情况下优先使用信号表单。在做表单决策时,分析项目并考虑以下指南:

  • 如果应用使用 v21 或更新版本,并且这是一个新表单,优先使用信号表单。

  • 对于较旧的应用或处理现有表单时,使用与应用当前表单策略相匹配的合适表单类型。

  • 信号表单:使用信号进行表单状态管理。阅读 signal-forms.md

  • 模板驱动表单:用于简单表单。阅读 template-driven-forms.md

  • 响应式表单:用于复杂表单。阅读 reactive-forms.md

依赖注入

在 Angular 中实现依赖注入时,遵循以下指南:

  • 基础:依赖注入概览、服务和 inject() 函数。阅读 di-fundamentals.md
  • 创建和使用服务:创建服务、providedIn: 'root' 选项以及将其注入到组件或其他服务中。阅读 creating-services.md
  • 定义依赖提供者:自动与手动提供、InjectionToken、useClass、useValue、useFactory 和作用域。阅读 defining-providers.md
  • 注入上下文:inject() 允许的位置、runInInjectionContext 和 assertInInjectionContext。阅读 injection-context.md
  • 分层注入器:EnvironmentInjector 与 ElementInjector、解析规则、修饰符(optional、skipSelf)以及 providers 与 viewProviders。阅读 hierarchical-injectors.md

管道

当在模板中格式化值、创建自定义管道或在 TypeScript 中重用类似管道的逻辑时,查阅以下参考资料。在模板中优先使用管道;在模板外部,避免仅为了调用 transform() 而注入管道类。

  • 管道:内置管道导入、自定义管道命名与实现、纯管道与非纯管道,以及使用独立格式函数或提取的普通函数的 TypeScript 重用模式。阅读 pipes.md

Angular Aria

当为以下任何模式构建可访问的自定义组件时:Accordion、Listbox、Combobox、Menu、Tabs、Toolbar、Tree、Grid,查阅以下参考资料:

  • Angular Aria 组件:构建无头、可访问的组件(Accordion、Listbox、Combobox、Menu、Tabs、Toolbar、Tree、Grid)以及样式化 ARIA 属性。阅读 angular-aria.md

路由

在 Angular 中实现导航时,查阅以下参考资料:

  • 定义路由:URL 路径、静态与动态段、通配符和重定向。阅读 define-routes.md
  • 路由加载策略:急切加载与惰性加载,以及上下文感知加载。阅读 loading-strategies.md
  • 使用出口展示路由:使用 <router-outlet>、嵌套出口和命名出口。阅读 show-routes-with-outlets.md
  • 导航到路由:使用 RouterLink 的声明式导航和使用 Router 的程序化导航。阅读 navigate-to-routes.md
  • 控制路由访问(守卫):实现 CanActivate、CanMatch 和其他守卫以保障安全。阅读 route-guards.md
  • 数据解析器:在路由激活前使用 ResolveFn 预取数据。阅读 data-resolvers.md
  • 路由器生命周期与事件:导航事件的时间顺序及调试。阅读 router-lifecycle.md
  • 渲染策略:CSR、SSG(预渲染)和带水合的 SSR。阅读 rendering-strategies.md
  • 路由过渡动画:启用和自定义视图过渡 API。阅读 route-animations.md

如果需要更深入的文档或更多上下文,请访问官方 Angular 路由指南。

样式与动画

在 Angular 中实现样式和动画时,查阅以下参考资料:

  • 在 Angular 中使用 Tailwind CSS:将 Tailwind CSS 集成到 Angular 项目中。阅读 tailwind-css.md
  • Angular 动画:使用原生 CSS(推荐)或遗留 DSL 实现动态效果。阅读 angular-animations.md
  • 组件样式:组件样式和封装的最佳实践。阅读 component-styling.md

测试

当编写或更新测试时,根据任务查阅以下参考资料:

工具链

当使用 Angular 工具链时,查阅以下参考资料:

  • Angular CLI:创建应用、生成代码(组件、路由、服务)、服务和构建。阅读 cli.md
  • 代码现代化:使用迁移自动重构到现代标准。阅读 migrations.md
  • Angular MCP 服务器:可用工具、配置和实验性功能。阅读 mcp.md
  • 环境配置:构建时和运行时配置的策略。阅读 environment-configuration.md

相关技能