Change detection is how Angular keeps the DOM in sync with component data — after any potentially state-changing event, it checks components and updates the view where data changed. By default this checking is broad; OnPush narrows it for performance.
How default change detection works
An async event fires (click, HTTP response, setTimeout) →
Zone.js notifies Angular → Angular checks the ENTIRE component tree
top-to-bottom → updates any bindings whose values changed.
By default ( strategy), Angular re-checks on every event — correct, but potentially wasteful in large trees.
