Angular · Senior · Frage 2 von 75
Warum ruft man in einer Zone-basierten App NgZone.runOutsideAngular() auf?
this.zone.runOutsideAngular(() => {
window.addEventListener("mousemove", this.onMove);
});- 1Damit häufige Events nicht bei jedem Tick die Change Detection auslösen
- 2Um den Code in einem Web Worker abseits des Hauptthreads auszuführen
- 3Damit Fehler in diesem Code den
ErrorHandlerumgehen
Antwort zeigen
Richtige Antwort: Damit häufige Events nicht bei jedem Tick die Change Detection auslösen
Erklärung
Tausende mousemove- oder requestAnimationFrame-Callbacks würden jeweils eine App-weite Change Detection auslösen (Zone Pollution). Kehre mit zone.run() nur zurück, wenn die UI wirklich ein Update braucht.