Обнаружение изменений означает обновление DOM при каждом изменении данных. Angular предоставляет две стратегии обнаружения изменений. В своей стратегии по умолчанию всякий раз, когда какие-либо данные мутируются или изменяются, Angular запускает детектор изменений для обновления DOM.
Как Angular обнаруживает обнаружение изменений?
Чтобы запустить детектор изменений вручную:
- Добавить сервис ChangeDetectorRef в компонент.
- Используйте markForCheck в методе подписки, чтобы указать Angular проверять компонент при следующем запуске детекторов изменений.
- На крючке жизненного цикла ngOnDestroy отписаться от наблюдаемого.
Что такое цикл обнаружения изменений в Angular?
Во время обнаружения изменений Angular просматривает привязки, оценивает выражения, сравнивает их с предыдущими значениями и при необходимости обновляет DOM. После каждого цикла обнаружения изменений Angular выполняет проверку, чтобы убедиться, что состояние компонента синхронизировано с пользовательским интерфейсом.
Что такое обнаружение изменений Angular onPush?
Стратегия OnPush изменяет поведение обнаружения изменений Angular аналогично тому, как это происходит при отсоединении компонента. Обнаружение изменений больше не запускается автоматически для каждого компонента. Вместо этого Angular прослушивает определенные изменения и запускает обнаружение изменений только в поддереве для этого компонента.
Что такое стратегия обнаружения изменений?
Основной механизм обнаружения изменений заключается в том, чтобы выполнять проверки по двум состояниям, одно из которых является текущим состоянием, а другое - новым состоянием. Если одно из этих состояний отличается от другого, то что-то изменилось, а это означает, что нам нужно обновить (или перерендерить) представление.