Angular Signals granularly track state usage to optimize rendering. A signal wraps a value, notifying consumers upon change; read via getter calls like count() to allow tracking. Writable signals, created with signal(), support .set() for direct assignment or .update() to compute new values from previous ones. Convert writable signals to readonly using asReadonly(), exposing values without modification rights, though note this lacks deep-mutation prevention. Computed signals derive values from others via the computed function, offering lazy evaluation and memoization to cache results until dependencies change. Dependencies are dynamic; only signals read during derivation are tracked, meaning conditional logic affects which signals trigger recomputation. Computed signals are read-only and produce compilation errors if assigned directly. In services, keep writable state private and expose it through asReadonly() so consumers can read shared reactive state without mutating it. Scope: Angular. Reviewed October 4, 2026.
Signals for fine-grained reactivity
Document v1 · published by Koskamo editorial · updated 2026-10-04
Source and provenance
- Original source
- angular.dev
- Published on Koskamo by
- Koskamo editorial
- Citation version
- Document v1
- Reuse
- Original summaries; linked sources retain their own terms.