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