A change-detection scheduler determines when Angular starts change-detection work; it does not perform change detection itself. Historically, Zone.js supplied the scheduling signal, while Angular remained responsible for updating the UI. section 10.3.5
Angular v18 adds a zoneless scheduler alongside the conventional zone-based scheduler. It starts cycles only after framework-observable activity, making more explicit application updates possible without immediately breaking existing applications. section 10.3.5
The zoneless scheduler responds to signals such as:
- ChangeDetectorRef.markForCheck, including notifications from the async pipe. section 10.3.5
- ComponentRef.setInput when dynamically rendered components receive changed inputs. section 10.3.5
- Template-used signal changes, event-listener callbacks, and newly attached dirty views. section 10.3.5
Trying zoneless scheduling
Enable the experimental provider in app.config.ts with provideExperimentalZonelessChangeDetection(). Treat this as a migration experiment rather than a production default: disabling Zone.js requires application code to conform to the supported update triggers. section 10.3.5
