angular-signals 是做什么的?
在 Angular v20+ 中实现基于信号的响应式状态管理。用于创建响应式状态(signal())、派生状态(computed())、依赖状态(linkedSignal())和副作用(effect())。触发于状态管理问题、从 BehaviorSubject/Observable 模式转换到信号,或实现响应式数据流。
在 Angular v20+ 中实现基于信号的响应式状态管理。用于创建响应式状态(signal())、派生状态(computed())、依赖状态(linkedSignal())和副作用(effect())。触发于状态管理问题、从 BehaviorSubject/Observable 模式转换到信号,或实现响应式数据流。
该技能专门用于在 Angular v20+ 中实施基于信号的响应式状态管理。它利用 Angular 的信号系统(包括 signal()、computed()、linkedSignal() 和 effect())来创建简洁、高效且可预测的状态流。与传统的 RxJS 模式(如 BehaviorSubject 或 Observable)相比,信号提供了更小的打包体积和更优的变更检测性能。该技能适用于从旧的 Observable 状态管理迁移、新项目的初始设置,或者重构复杂的响应式数据流场景。它支持 Angular 框架(v16+ 信号 API,v20+ 完整特性),并建议与 analogjs 或其他 Angular 生态系统库配合使用。通过直接操作信号,开发者可以避免繁重的订阅管理,同时享受 Angular 框架的自动变更检测优化。
npx skills add https://github.com/analogjs/angular-skills/tree/main/skills/angular-signalsInstalled? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →
在 Angular v20+ 中实现基于信号的响应式状态管理。用于创建响应式状态(signal())、派生状态(computed())、依赖状态(linkedSignal())和副作用(effect())。触发于状态管理问题、从 BehaviorSubject/Observable 模式转换到信号,或实现响应式数据流。
This repo contains 9 individual skills — each has its own dedicated page.
Create modern Angular standalone components following v20+ best practices. Use for building UI components with signal-based inputs/outputs, OnPush change detection, host bindings, content projection, and lifecycle hooks. Triggers on component creation, refactoring class-based inputs to signals, adding host bindings, or implementing accessible interactive components.
Implement dependency injection in Angular v20+ using inject(), injection tokens, and provider configuration. Use for service architecture, providing dependencies at different levels, creating injectable tokens, and managing singleton vs scoped services. Triggers on service creation, configuring providers, using injection tokens, or understanding DI hierarchy.
Create custom directives in Angular v20+ for DOM manipulation and behavior extension. Use for attribute directives that modify element behavior/appearance, structural directives for portals/overlays, and host directives for composition. Triggers on creating reusable DOM behaviors, extending element functionality, or composing behaviors across components. Note - use native @if/@for/@switch for control flow, not custom structural directives.
Build signal-based forms in Angular v21+ using the new Signal Forms API. Use for form creation with automatic two-way binding, schema-based validation, field state management, and dynamic forms. Triggers on form implementation, adding validation, creating multi-step forms, or building forms with conditional fields. Signal Forms are experimental but recommended for new Angular projects. Don't use for template-driven forms without signals or third-party form libraries like Formly or ngx-formly.
Implement HTTP data fetching in Angular v20+ using resource(), httpResource(), and HttpClient. Use for API calls, data loading with signals, request/response handling, and interceptors. Triggers on data fetching, API integration, loading states, error handling, or converting Observable-based HTTP to signal-based patterns.
Implement routing in Angular v20+ applications with lazy loading, functional guards, resolvers, and route parameters. Use for navigation setup, protected routes, route-based data loading, and nested routing. Triggers on route configuration, adding authentication guards, implementing lazy loading, or reading route parameters with signals.
Implement server-side rendering and hydration in Angular v20+ using @angular/ssr. Use for SSR setup, hydration strategies, prerendering static pages, and handling browser-only APIs. Triggers on SSR configuration, fixing hydration mismatches, prerendering routes, or making code SSR-compatible.
Write unit and integration tests for Angular v20+ applications using Vitest or Jasmine with TestBed and modern testing patterns. Use for testing components with signals, OnPush change detection, services with inject(), and HTTP interactions. Triggers on test creation, testing signal-based components, mocking dependencies, or setting up test infrastructure. Don't use for E2E testing with Cypress or Playwright, or for testing non-Angular JavaScript/TypeScript code.
Use Angular CLI and development tools effectively in Angular v20+ projects. Use for project setup, code generation, building, testing, and configuration. Triggers on creating new projects, generating components/services/modules, configuring builds, running tests, or optimizing production builds. Don't use for Nx workspace commands, custom Webpack configurations, or non-Angular CLI build systems like Vite standalone or esbuild direct usage.
Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.
Control Eight Sleep pods (status, temperature, alarms, schedules).
BluOS CLI (blu) for discovery, playback, grouping, and volume.
Create, search, and manage Bear notes via grizzly CLI.
Capture frames or clips from RTSP/ONVIF cameras.
Search GIF providers with CLI/TUI, download results, and extract stills/sheets.