1In summary,
2
3Default:
4- Any property.
5- Any template bound event.
6
7On push:
8- Any @Input property only.
9- Any template bound event.
10
11Other triggers (for both):
12- Any event Callback.
13- Network Call (XHR).
14- Timers (setTimeout, setInterval).
15- You can explicitly call CD.
16- Async pipe still calls CD regardless.
17
18Notes:
19- Tree is checked top-down when CD fires. Parent nodes may stop propagation!!
20- Strategy can be changed to on push at any time, usually for performance reasons.
21- NGZone is used to patch native APIs to listen for CD.
22
1A: AfterContentInit
2A: AfterContentChecked
3A: Update bindings
4 B: AfterContentInit
5 B: AfterContentChecked
6 B: Update bindings
7 C: AfterContentInit
8 C: AfterContentChecked
9 C: Update bindings
10 C: AfterViewInit
11 C: AfterViewChecked
12 B: AfterViewInit
13 B: AfterViewChecked
14A: AfterViewInit
15A: AfterViewChecked<>Copy