Angular开发指南_angular-developer
以下为本文档的中文说明angular-developer 是 Angular 官方团队提供的 Angular 代码生成与架构指导技能为 Angular 开发者提供了全面的最佳实践参考。该技能涵盖了 Angular 开发的各个关键领域信号Signals响应式编程包括 linkedSignal 和 resource 等新 API 的正确使用表单处理涵盖模板驱动表单和响应式表单的最佳实践依赖注入包括 provide 函数、注入上下文和层级注入器路由配置包括懒加载、路由守卫和路由解析器服务端渲染SSR的支持无障碍性ARIA的实践指南动画系统的使用组件样式方案包括组件样式封装和 Tailwind CSS 的集成自动化测试包括单元测试和端到端测试的策略以及 Angular CLI 工具链的高效使用。使用场景包括新建 Angular 项目时的架构决策、为现有项目添加新组件或服务、优化应用性能、重构遗留代码、以及解决在开发过程中遇到的具体技术问题。核心原则是在给出任何建议之前先分析项目的 Angular 版本——不同版本之间的最佳实践和可用特性差异很大例如 Angular 17 引入的信号系统在 Angular 16 中并不存在。每当生成代码后技能要求运行 ng build 确保没有构建错误这体现了质量至上的工程理念。该技能遵循 Angular 官方风格指南确保生成的代码在可维护性和性能方面达到生产级标准。Angular Developer GuidelinesAlways analyze the project’s Angular version before providing guidance, as best practices and available features can vary significantly between versions. If creating a new project with Angular CLI, do not specify a version unless prompted by the user.When generating code, follow Angular’s style guide and best practices for maintainability and performance. Use the Angular CLI for scaffolding components, services, directives, pipes, and routes to ensure consistency.Once you finish generating code, runng buildto ensure there are no build errors. If there are errors, analyze the error messages and fix them before proceeding. Do not skip this step, as it is critical for ensuring the generated code is correct and functional.Creating New ProjectsIf no guidelines are provided by the user, here are same default rules to follow when creating a new Angular project:Use the latest stable version of Angular unless the user specifies otherwise.Use Signals Forms for form management in new projects (available in Angular v21 and newer) Find out more.Execution Rules forng new:When asked to create a new Angular project, you must determine the correct execution command by following these strict steps:Step 1: Check for an explicit user version.IFthe user requests a specific version (e.g., Angular 15), bypass local installations and strictly usenpx.Command:npx angular/clirequested_version new project-nameStep 2: Check for an existing Angular installation.IFno specific version is requested, runng versionin the terminal to check if the Angular CLI is already installed on the system.IFthe command succeeds and returns an installed version, use the local/global installation directly.Command:ng new project-nameStep 3: Fallback to Latest.IFno specific version is requested AND theng versioncommand fails (indicating no Angular installation exists), you must usenpxto fetch the latest version.Command:npx angular/clilatest new project-nameComponentsWhen working with Angular components, consult the following references based on the task:Fundamentals: Anatomy, metadata, core concepts, and template control flow (if, for, switch). Read components.mdInputs: Signal-based inputs, transforms, and model inputs. Read inputs.mdOutputs: Signal-based outputs and custom event best practices. Read outputs.mdHost Elements: Host bindings and attribute injection. Read host-elements.mdIf you require deeper documentation not found in the references above, read the documentation athttps://angular.dev/guide/components.Reactivity and Data ManagementWhen managing state and data reactivity, use Angular Signals and consult the following references:Signals Overview: Core signal concepts (signal,computed), reactive contexts, anduntracked. Read signals-overview.mdDependent State (linkedSignal): Creating writable state linked to source signals. Read linked-signal.mdAsync Reactivity (resource): Fetching asynchronous data directly into signal state. Read resource.mdSide Effects (effect): Logging, third-party DOM manipulation (afterRenderEffect), and when NOT to use effects. Read effects.mdFormsIn most cases for new apps,prefer signal forms. When making a forms decision, analyze the project and consider the following guidelines:if the application is using v21 or newer and this is a new form,prefer signal forms.-For older applications or when working with existing forms, use the appropriate form type that matches the applications current form strategy.Signal Forms: Use signals for form state management. Read [signal-forms.md](references/signal-forms.md)Template-driven forms: Use for simple forms. Read template-driven-forms.mdReactive forms: Use for complex forms. Read reactive-forms.mdDependency InjectionWhen implementing dependency injection in Angular, follow these guidelines:Fundamentals: Overview of Dependency Injection, services, and theinject()function. Read di-fundamentals.mdCreating and Using Services: Creating services, theprovidedIn: rootoption, and injecting into components or other services. Read creating-services.mdDefining Dependency Providers: Automatic vs manual provision,InjectionToken,useClass,useValue,useFactory, and scopes. Read defining-providers.mdInjection Context: Whereinject()is allowed,runInInjectionContext, andassertInInjectionContext. Read injection-context.mdHierarchical Injectors: TheEnvironmentInjectorvsElementInjector, resolution rules, modifiers (optional,skipSelf), andprovidersvsviewProviders. Read hierarchical-injectors.mdAngular AriaWhen building accessible custom components for any of the following patterns: Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid, consult the following reference:Angular Aria Components: Building headless, accessible components (Accordion, Listbox, Combobox, Menu, Tabs, Toolbar, Tree, Grid) and styling ARIA attributes. Read angular-aria.mdRoutingWhen implementing navigation in Angular, consult the following references:Define Routes: URL paths, static vs dynamic segments, wildcards, and redirects. Read define-routes.mdRoute Loading Strategies: Eager vs lazy loading, and context-aware loading. Read loading-strategies.mdShow Routes with Outlets: Usingrouter-outlet, nested outlets, and named outlets. Read show-routes-with-outlets.mdNavigate to Routes: Declarative navigation withRouterLinkand programmatic navigation withRouter. Read navigate-to-routes.mdControl Route Access with Guards: ImplementingCanActivate,CanMatch, and other guards for security. Read route-guards.mdData Resolvers: Pre-fetching data before route activation withResolveFn. Read>Styling and AnimationsWhen implementing styling and animations in Angular, consult the following references:Using Tailwind CSS with Angular: Integrating Tailwind CSS into Angular projects. Read tailwind-css.mdAngular Animations: Using native CSS (recommended) or the legacy DSL for dynamic effects. Read angular-animations.mdStyling components: Best practices for component styles and encapsulation. Read component-styling.mdTestingWhen writing or updating tests, consult the following references based on the task:Fundamentals: Best practices for unit testing (Vitest), async patterns, andTestBed. Read [testing-fundamentals.md](references/testing-fundamentals.md)Component Harnesses: Standard patterns for robust component interaction. Read component-harnesses.mdRouter Testing: UsingRouterTestingHarnessfor reliable navigation tests. Read router-testing.mdEnd-to-End (E2E) Testing: Best practices for E2E tests with Cypress. Read e2e-testing.mdToolingWhen working with Angular tooling, consult the following references:Angular CLI: Creating applications, generating code (components, routes, services), serving, and building. Read cli.mdCode Modernization: Automatically refactoring to modern standards using migrations. Read migrations.mdAngular MCP Server: Available tools, configuration, and experimental features. Read mcp.md3e:[“ , ,,L41”,null,{“content”:“$42”,“frontMatter”:{“name”:“angular-developer”,“description”:“Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.”,“license”:“MIT”,“metadata”:{“author”:“Copyright 2026 Google LLC”,“version”:“1.0”}}}]3f:[“KaTeX parse error: Expected }, got EOF at end of input: …,children:[[”,“div”,null,{“className”:“flex items-center justify-between border-b border-border bg-muted/30 px-4 py-2.5”,“children”:[[“KaTeX parse error: Expected }, got EOF at end of input: …,children:[”,“span”,null,{“className”:“truncate text-xs font-medium text-muted-foreground”,“children”:“同仓库更多 Skills”}]}],[“KaTeX parse error: Expected EOF, got } at position 88: …ldren:同仓库}]]}̲],[”,“div”,null,{“className”:“p-4 sm:p-5”,“children”:[[“ , h 2 , n u l l , i d : r e l a t e d − s k i l l s − h e a d i n g , c l a s s N a m e : t e x t − 2 x l f o n t − s e m i b o l d t r a c k i n g − n o r m a l t e x t − f o r e g r o u n d , c h i l d r e n : 同仓库更多 S k i l l s ] , [ ,h2,null,{id:related-skills-heading,className:text-2xl font-semibold tracking-normal text-foreground,children:同仓库更多 Skills}],[,h2,null,id:related−skills−heading,className:text−2xlfont−semiboldtracking−normaltext−foreground,children:同仓库更多Skills],[”,“div”,null,{“className”:“mt-4 grid gap-3 sm:grid-cols-2”,“children”:[“L 43 , L43,L43,L44”,“$L45”]}]]}]]}]46:I[206516,[“/_next/static/chunks/051aanbhrv4br.js”,“/_next/static/chunks/0mizr60h7ayzt.js”,“/_next/static/chunks/0v9lm1dmbdoo-.js”,“/_next/static/chunks/0rxr1j1j3j-.r.js”,“/_next/static/chunks/02ftybezfvqjd.js”,“/_next/static/chunks/0.v9ksvnnj8ia.js”,“/_next/static/chunks/0bn6id96nx3k.js,“/_next/static/chunks/13ybnhn37c.tc.js”,“/_next/static/chunks/0_fnrdtruz8uf.js”,“/_next/static/chunks/0r6l15utt1mwb.js”,“/_next/static/chunks/0dm9a5into854.js”,/_next/static/chunks/07k6hqoibtcn.js”,“/next/static/chunks/0b4cao.4y…j.js”,“/_next/static/chunks/02i-n28z7kjd0.js”],“default”]

相关新闻

《设计EDA 候选人跳槽竞业风险简易自测问卷》

《设计EDA 候选人跳槽竞业风险简易自测问卷》

适用人群:设计 EDA 赛道全体人员(工程师 / 组长 / 专家 / 经理 / 总监 / VP/CTO) 使用场景:候选人自我风险评估、猎头初筛、HR 面试前置风险摸底 填写说明:逐项如实勾选,依据最终风险等级判断 offer 可行性;问卷仅作风险参考,不构成法律意见,重大争议建议咨询劳动 / 知…

2026/7/24 22:08:47 阅读更多 →
学术论文评审_academic-paper-review

学术论文评审_academic-paper-review

以下为本文档的中文说明Academic Paper Review 是一个专业的学术论文评审技能,能够自动生成结构化的、达到顶级同行评审质量标准的论文深度分析报告。该技能严格模仿顶级学术会议和期刊的评审标准,包括 NeurIPS、ICML、ACL、Nature 和 IEEE 等&#xff0…

2026/7/24 22:08:47 阅读更多 →
系统配置仪表板_diverga

系统配置仪表板_diverga

以下为本文档的中文说明该技能用于Diverga仪表板——提供实时的配置状态和功能概览。Diverga是一个系统管理平台,此技能帮助用户快速查看系统的运行配置、功能开关状态和关键性能指标。它提供了一目了然的可视化仪表板,整合分散的系统信息于统一的视图之…

2026/7/24 22:08:47 阅读更多 →

最新新闻

基于Java的医院药品管理系统的设计与实现任务书

基于Java的医院药品管理系统的设计与实现任务书

一、课题研究背景与意义 随着现代医院信息化建设持续推进,医院药品品类繁多、库存周转频繁、出入库量大,传统依靠人工登记、纸质台账、Excel统计的药品管理方式弊端日益突出。人工管理模式存在药品入库登记繁琐、库存更新不及时、盘点效率低下、过期药品…

2026/7/24 22:17:52 阅读更多 →
基于JavaWeb的火车票订票系统任务书

基于JavaWeb的火车票订票系统任务书

一、课题研究背景与意义 在互联网信息化高速发展的背景下,传统线下火车站窗口、自助机购票模式存在排队时间长、流程繁琐、购票效率低、车次查询不便等诸多弊端,难以满足大众便捷出行的需求。随着出行人数逐年增加,节假日票务供需矛盾突出&am…

2026/7/24 22:17:52 阅读更多 →
Fastboot Enhance:Windows平台终极可视化Android刷机工具完整指南

Fastboot Enhance:Windows平台终极可视化Android刷机工具完整指南

Fastboot Enhance:Windows平台终极可视化Android刷机工具完整指南 【免费下载链接】FastbootEnhance A user-friendly Fastboot ToolBox & Payload Dumper for Windows 项目地址: https://gitcode.com/gh_mirrors/fa/FastbootEnhance 还在为复杂的Fastbo…

2026/7/24 22:17:52 阅读更多 →
COMTool串口调试助手:3分钟掌握跨平台通信调试全攻略

COMTool串口调试助手:3分钟掌握跨平台通信调试全攻略

COMTool串口调试助手:3分钟掌握跨平台通信调试全攻略 【免费下载链接】COMTool Cross platform communicate assistant(Serial/network/terminal tool)( 跨平台 串口调试助手 网络调试助手 终端工具 linux windows mac Raspberry Pi )支持插件…

2026/7/24 22:17:52 阅读更多 →
告别繁琐手动签到!青龙面板30+平台自动签到终极指南

告别繁琐手动签到!青龙面板30+平台自动签到终极指南

告别繁琐手动签到!青龙面板30平台自动签到终极指南 【免费下载链接】check 青龙面板平台签到函数 项目地址: https://gitcode.com/gh_mirrors/check5/check 你是否厌倦了每天重复打开十几个APP进行签到?是否曾因忘记签到而错失宝贵积分&#xff1…

2026/7/24 22:17:52 阅读更多 →
LLCOM串口工具使用记录

LLCOM串口工具使用记录

--循环发送快捷发送区数据---例子一 --发送数据中间间隔时间(单位ms) local sendDelay 1000--待发送数据的顺序 local sendList {1,2,4,1,6,8} --你也可以用下面的代码批量生成 --从2号发到15号数据 --[[ for i2,15 dotable.insert(sendList, i) end ]…

2026/7/24 22:16:51 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 1:23:39 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻