Angular · Senior · Запитання 2 з 75
Навіщо в застосунку на Zone.js викликати NgZone.runOutsideAngular()?
this.zone.runOutsideAngular(() => {
window.addEventListener("mousemove", this.onMove);
});- ✓Правильна відповідь: Щоб часті події чи цикли анімації не запускали change detection на кожному тіку
- 2Щоб виконати код у Web Worker
- 3Щоб помилки оминали
ErrorHandler
Пояснення
Тисячі колбеків mousemove чи requestAnimationFrame запускали б change detection усього застосунку (zone pollution). Повертайтеся в зону через zone.run(), лише коли UI справді треба оновити.