Что такое Change Detection в Angular? Какие стратегии существуют?
Answer from AI
sobes.tech AI
Change Detection в Angular — это механизм, который отслеживает изменения в данных модели и обновляет представление (DOM) соответственно.
Когда данные компонента изменяются, Angular запускает процесс обнаружения изменений, чтобы определить, какие части интерфейса нужно обновить.
Существуют две основные стратегии Change Detection:
-
Default — Angular проверяет все компоненты в дереве, начиная с корня, при каждом событии, таймере или асинхронном вызове. Это обеспечивает актуальность данных, но может быть менее производительно при большом количестве компонентов.
-
OnPush — Angular проверяет компонент только если:
- изменился входящий @Input (по ссылке),
- произошло событие внутри компонента,
- или вызван метод
markForCheck().
Эта стратегия повышает производительность, уменьшая количество проверок, особенно в больших приложениях.
Пример использования OnPush:
@Component({
selector: 'my-comp',
changeDetection: ChangeDetectionStrategy.OnPush,
template: `{{ data.name }}`
})
export class MyComponent {
@Input() data: { name: string };
}
Здесь Angular обновит компонент только если ссылка на data изменится, а не при изменении свойств внутри объекта без смены ссылки.