A technical talk presented at Angular Kenya that builds a mental model of Angular's change detection from the ground up, then uses that model to explain what Signals change beneath the familiar API.
Watch the talk · Explore the presentation slides
The talk begins with one of Angular's most misunderstood errors:
ExpressionChangedAfterItHasBeenCheckedError
Rather than stopping at the usual fixes, it traces the error through Angular's internals and uses it to answer two deeper questions:
- Why does Angular throw this error?
- Why does wrapping the mutation in
setTimeoutmake it disappear without fixing the underlying problem?
From there, the session follows the complete path from a state mutation to a synchronized DOM:
-
Zone.js and change-detection timing How Angular learns that application state might have changed, and why that notification cannot identify what changed.
-
ApplicationRef.tick()and component-tree traversal How Angular checks views from the root and executes generated template instructions. -
Template functions, binding instructions, and
LViewHow compiled templates read component state, compare binding values, retain previous values, and update the DOM. -
Development-mode stability checks and NG0100 Why Angular performs a second check, how late mutations violate unidirectional data flow, and what the error is protecting.
-
Why
setTimeoutappears to work How moving a mutation into a later browser task escapes the current check instead of correcting the timing issue. -
Signals and the reactive graph How producers and consumers give Angular dependency information, enabling a more precise synchronization model.
Zone.js: "Something happened. State might have changed."
Signals: "This state changed, and these consumers depend on it."
Signals are more than a convenient state API. They give Angular the dependency information required to move from broadly detecting possible changes toward synchronizing the views that depend on changed state.
Khang Tran is a frontend engineer specializing in Angular and reactive architecture.
