Change Detection
Zone.js, стратегії change detection, стратегія OnPush, ChangeDetectorRef, markForCheck, detectChanges, оптимізація продуктивності
1Що таке механізм change detection в Angular?
Що таке механізм change detection в Angular?
Відповідь
Change detection — це процес, за допомогою якого Angular виявляє зміни у стані застосунку та оновлює DOM відповідно. За замовчуванням Angular використовує Zone.js для автоматичного виявлення асинхронних подій (clicks, HTTP requests, timers) і запускає перевірку компонентів від кореня. Ця перевірка проходить деревом компонентів, щоб визначити модифікації, які потрібно застосувати до DOM.
2Яка роль Zone.js у change detection Angular?
Яка роль Zone.js у change detection Angular?
Відповідь
Zone.js — це бібліотека, яка патчить нативні асинхронні API браузера (setTimeout, Promise, addEventListener тощо) для перехоплення їх виконання. Коли асинхронна операція завершується, Zone.js повідомляє Angular, який автоматично запускає change detection від кореневого компонента. Це дозволяє Angular виявляти зміни без ручного втручання розробника.
3Яка різниця між стратегіями Default та OnPush?
Яка різниця між стратегіями Default та OnPush?
Відповідь
Стратегія Default перевіряє всі компоненти в дереві на кожному циклі change detection, що може бути дорогим. OnPush оптимізує, перевіряючи компонент лише коли змінюються його input (незмінні посилання), коли подія генерується з його шаблону, коли async pipe отримує нове значення, або коли markForCheck() викликається вручну. OnPush значно зменшує кількість перевірок і покращує продуктивність.
Як увімкнути стратегію OnPush на компоненті?
Яке призначення ChangeDetectorRef у компоненті Angular?
+17 питань зі співбесід
Інші теми співбесід Angular
Основи TypeScript
TypeScript просунутий
Основи Angular
Компоненти та життєвий цикл
Services & Dependency Injection
Організація модулів Angular
Angular CLI
Директиви та Pipe
Маршрутизація та навігація
Реактивні форми
Template-driven форми
Основи RxJS
Оператори RxJS
HttpClient і виклики API
Базове керування станом
Angular Signals
Standalone Components
Модульні тести в Angular
End-to-End тестування
Build і оптимізація
Основи NgRx
Просунутий NgRx
Архітектура Angular
Оптимізація продуктивності
Безпека та найкращі практики
Просунуті патерни RxJS
Angular Universal та SSR
Angular Micro-frontends
Опануй Angular для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно