Angular Signals
Angular's fine-grained reactivity primitive for tracking and propagating state changes without Zone.js
Angular Signals is a reactivity system built into Angular that wraps values in trackable containers so the framework can detect exactly which parts of a component depend on which state, updating only the affected parts of the DOM.
Definition
Angular Signals is a reactivity system built into Angular that wraps values in trackable containers so the framework can detect exactly which parts of a component depend on which state, updating only the affected parts of the DOM.
Overview
Angular Signals was introduced to address a long-standing criticism of Angular's original change-detection model, which relied on Zone.js to monkey-patch browser APIs and trigger a full check of the component tree whenever any asynchronous event occurred. That approach worked but was comparatively coarse-grained and added both a runtime dependency and mental overhead for developers debugging why a particular change-detection cycle ran. Signals replace that model, component by component, with explicit, fine-grained reactivity: a signal is a wrapper around a value, created with `signal()`, that components and computed values can read, and Angular tracks exactly which templates or computations depend on which signals so it can update only what actually needs to change. A signal is read by calling it as a function (`count()`) and updated through `.set()` or `.update()`, which notifies only the specific consumers that depend on it. Derived state is expressed with `computed()`, which automatically recalculates when any signal it reads changes, and side effects that need to run in response to signal changes use `effect()`. This model is conceptually similar to reactivity primitives popularized by SolidJS and, more recently, adopted in similar form by Vue's Composition API and Preact, reflecting a broader industry convergence on signal-based fine-grained reactivity as an alternative to virtual-DOM diffing or dirty-checking. Signals do not replace Angular's existing RxJS-based patterns outright; the two interoperate through utilities like `toSignal()` and `toObservable()`, letting teams migrate incrementally rather than rewrite existing observable-heavy code. Angular's broader roadmap has used signals as a foundation for further changes, including zoneless change detection, which removes the Zone.js dependency entirely for applications that adopt signals consistently, reducing bundle size and simplifying the framework's internals.
Key Concepts
- Fine-grained reactivity: only components that read a changed signal re-render
- signal() creates a writable, trackable reactive value
- computed() derives values that automatically update when dependencies change
- effect() runs side effects in response to signal changes
- Interoperates with RxJS observables via toSignal() and toObservable()
- Enables zoneless change detection, removing the Zone.js runtime dependency
- Improves debuggability by making state dependencies explicit rather than implicit
- Incrementally adoptable alongside existing Angular applications
Use Cases
Frequently Asked Questions
From the Blog
Angular Interview Questions You Should Be Ready For
Angular interviews test your understanding of components, dependency injection, change detection, and RxJS. This guide covers the core questions candidates commonly face and how to answer them with confidence.
Read More AI & TechnologyOnline evaluation: turning user signals into quality measurement
Offline sets only cover inputs you imagined. Learn which implicit and explicit signals measure real quality, and how to sample traffic and close the loop.
Read More ProgrammingUnderstanding HTTP Status Codes for Developers
HTTP status codes are three-digit signals a server returns to describe a request's outcome. Learn the five classes and the codes every developer must know.
Read More AI & TechnologyWhat Is a Milestone in Project Management?
A milestone is a zero-duration marker that signals a significant point of progress in a project timeline, distinct from a task with duration and effort. This guide explains how milestones work and how to set them well.
Read More