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/11/1 12:33:18 阅读更多 →
学术论文评审_academic-paper-review

学术论文评审_academic-paper-review

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

2026/10/30 7:57:36 阅读更多 →
系统配置仪表板_diverga

系统配置仪表板_diverga

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

2026/11/2 8:20:35 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/4 1:35:24 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/5 1:08:50 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/3 11:35:49 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/4 6:23:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/5 0:54:28 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/4 19:19:54 阅读更多 →

日新闻

周新闻

月新闻