Angular · Senior · Pytanie 2 z 75
Po co w aplikacji opartej na Zone.js wywoływać NgZone.runOutsideAngular()?
this.zone.runOutsideAngular(() => {
window.addEventListener("mousemove", this.onMove);
});- ✓Poprawna odpowiedź: Aby częste zdarzenia lub pętle animacji nie wywoływały change detection przy każdym tyknięciu
- 2Aby uruchomić kod w Web Workerze
- 3Aby błędy omijały
ErrorHandler
Wyjaśnienie
Tysiące callbacków mousemove lub requestAnimationFrame wywoływałyby change detection całej aplikacji (zone pollution). Wracaj do strefy przez zone.run() tylko wtedy, gdy UI naprawdę wymaga aktualizacji.