Чем отличаются ChangeDetectorRef.markForCheck() и detectChanges()? Как они распространяют проверку по дереву компонентов?

markForCheck помечает представление и путь к нему для последующей проверки, но не выполняет её синхронно. detectChanges запускает локальную проверку данного представления и его дочерней области.

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

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

markForCheck помечает представление и путь к нему для последующей проверки, но не выполняет её синхронно. detectChanges запускает локальную проверку данного представления и его дочерней области.

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

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

markForCheck помечает представление и путь к нему для последующей проверки, но не выполняет её синхронно. detectChanges запускает локальную проверку данного представления и его дочерней области.

markForCheck помогает включить OnPush-ветку в очередной проход; это не команда немедленно обновить всё приложение. detectChanges не идёт проверять родителей и применяется, в частности, для локального управления detached-представлением. Отсоединённая ветка не включается автоматически в обычный проход лишь от отметки markForCheck.

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

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

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

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

Подробнее