Что такое change detection в Angular, зачем он нужен, как работают Default и OnPush, и как это связано с Zone.js и zoneless-подходом?

Change detection сверяет данные с представлением. Default/Eager проверяет доступные ветви охотнее, OnPush позволяет пропускать неизменившиеся поддеревья при соблюдении правил уведомления.

Короткий ответ

Что ответить на собеседовании

Change detection сверяет данные с представлением. Default/Eager проверяет доступные ветви охотнее, OnPush позволяет пропускать неизменившиеся поддеревья при соблюдении правил уведомления.

Подробный разбор

Ответ с пояснениями

Change detection сверяет данные с представлением. Default/Eager проверяет доступные ветви охотнее, OnPush позволяет пропускать неизменившиеся поддеревья при соблюдении правил уведомления.

OnPush обновляется не только при новых input: важны обработчики событий, сигналы шаблона, markForCheck и другие уведомления Angular. Zone.js помогает замечать асинхронную активность, но не является самим механизмом сравнения. Zoneless использует явные уведомления framework без перехвата всех async API. Название Default не следует путать с настройкой по умолчанию в любой версии.

Источник: angular.dev.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее