What problem does it solve?
Migrates and modernizes Angular state management from Observable/BehaviorSubject patterns to synchronous, fine-grained signal primitives to reduce complexity, improve reactivity, and simplify derived state and side effects handling.
Core Features & Use Cases
- Writable and Derived State: Use signal() for writable state and computed() for derived values to keep UI in sync with minimal boilerplate.
- Dependent State & Reset Semantics: Use linkedSignal() to maintain dependent selections that auto-reset when their source changes, preserving or recalculating previous values when appropriate.
- Side Effects and Cleanup: Use effect() within injection contexts for deterministic side effects with automatic cleanup on component destroy, and interoperate with RxJS using toSignal/toObservable and resource() for async loading.
- Use Case: Convert a complex form and list management flow that used BehaviorSubjects and manual subscriptions into a signal-based store with computed selectors, resource-backed loading, and optimistic updates with rollback.
Quick Start
Create an Angular component or service that replaces BehaviorSubject-based state with signal(), computed(), linkedSignal(), and effect() while using toSignal/toObservable for RxJS interop.