angular-signals

Implement reactive state management in Angular using signal, computed, linkedSignal, and effect APIs.

Updated Feb 9, 2026
One-click install
npx skills add https://github.com/Blotch-Smart-Frames/Board --skill angular-signals-blotch-smart-frames
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: angular-signals
Source: https://github.com/Blotch-Smart-Frames/Board/tree/main/packages/client/.claude/skills/angular-signals
Command: npx skills add https://github.com/Blotch-Smart-Frames/Board --skill angular-signals-blotch-smart-frames

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Managing reactive state in Angular applications often involves verbose RxJS Observable and BehaviorSubject boilerplate. This Skill provides patterns for implementing fine-grained, synchronous reactivity with Angular's signal primitives, reducing complexity in component and service state management. ## Core Features & Use Cases - Core Signal APIs: Create writable state with signal(), derived state with computed(), resettable dependent state with linkedSignal(), and side effects with effect(). - RxJS Interoperability: Convert Observables to signals with toSignal() and signals back to Observables with toObservable() for gradual migration from BehaviorSubject patterns. - Advanced Patterns: Reference material covers the resource() API for async data fetching, signal store patterns, form state, optimistic updates, and testing strategies. - Use Case: When refactoring an Angular component that uses BehaviorSubject for search state, apply the debounced search pattern combining toObservable, RxJS operators, and toSignal to produce a cleaner signal-based implementation. ## Quick Start Ask the AI to convert a component's BehaviorSubject-based state into Angular signals with computed derived values and effects.

Frequently Asked Questions about angular-signals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create reactive state in Angular with signals?▼

Create writable state with signal(initialValue), read it by calling the signal as a function, and update it with set() or update(). Derive dependent values with computed(), which automatically recalculates when its signal dependencies change.

How to convert BehaviorSubject to Angular signals?▼

Use toSignal() from @angular/core/rxjs-interop to convert an Observable or BehaviorSubject into a signal. Pass { requireSync: true } for BehaviorSubject since it emits synchronously, or provide an initialValue for observables that emit asynchronously.

What is the difference between computed and linkedSignal in Angular?▼

computed() creates read-only derived state that recalculates from dependencies, while linkedSignal() creates writable state that resets when its source changes. Use linkedSignal when users can override a value that should re-initialize when upstream data changes.

When should I use effect() in Angular signals?▼

Use effect() for side effects that must run when signals change, such as logging or syncing to external systems. Effects must run in an injection context, typically the constructor, and are automatically cleaned up when the component is destroyed.

How do I fetch async data with Angular signals?▼

Use the resource() API with a params function and an async loader. The resource automatically refetches when params change and exposes value, isLoading, error, and status signals, with support for abort signals and conditional loading.

How do I test Angular components that use signals?▼

Test signals by calling them as functions to read values and using set() or update() to change state, then assert on computed results directly. For services using HttpClient, combine TestBed with provideHttpClientTesting and HttpTestingController.