What problem does it solve?
Replace complex Observable and BehaviorSubject patterns with synchronous, fine-grained reactive state to reduce subscription boilerplate, stale state, and fragile update flows in Angular applications.
Core Features & Use Cases
- Writable and derived state: create and update signals and computed values to express primary state and selectors.
- Dependent selection and reset: use linkedSignal patterns to preserve or reset selections when source collections change.
- Side effects and lifecycle awareness: run and clean up reactive side effects via effect() in injection contexts.
- RxJS interop and async resources: convert Observables to signals and back, and use resource() for parameterized async loading, debounced searches, and optimistic updates.
- Service/store patterns and testing: centralize state in signal-based stores with readonly selectors, expose loading/error signals, and test reactive behavior deterministically.
Quick Start
Create a writable count signal initialized to 0 and a computed fullName derived from firstName and lastName, then ask the assistant to explain how updates propagate and where to place effects.