Die Verwendung von ChangeDetectionStrategy.OnPush gehört zu den fortgeschrittenen Techniken in Angular, die zur Leistungssteigerung beitragen kann. Dies bietet die Möglichkeit, unnötige Änderungserkennungen zu verhindern und so die Leistung der Angular-Anwendung zu verbessern.
Angular's Change Detection ist ein sehr leistungsstarker Mechanismus, der Veränderungen im Datenmodell identifiziert und das Benutzer-Interface (UI) dementsprechend aktualisiert. Dadurch wird sichergestellt, dass der Bildschirm immer den aktuellen Zustand der Anwendung widerspiegelt.
Allerdings kann dieser Mechanismus, wenn er nicht richtig gehandhabt wird, auch zu Leistungsproblemen führen. Insbesondere dann, wenn viele Änderungen stattfinden und die Anwendung ständig neu gerendert werden muss.
An diesem Punkt kommt ChangeDetectionStrategy.OnPush
ins Spiel. Wenn eine Komponente dieses Change-Detection-Verfahren verwendet, informiert Angular das System nur über Änderungen, wenn sich der Input der Komponente ändert oder ein Ereignis in der Komponente ausgelöst wurde (wie z. B. ein Mausklick). Dadurch werden unnötige Änderungserkennungen und Renderings vermieden.
Ein praktisches Beispiel dafür könnte eine Chat-Anwendung sein. Wenn zu jeder Sekunde neue Nachrichten eintreffen, wäre es ineffizient, das gesamte UI jedes Mal neu zu rendern, da dies die Leistung der Anwendung erheblich beeinträchtigen würde. Durch die Verwendung von ChangeDetectionStrategy.OnPush
könnte die Chat-Komponente so konfiguriert werden, dass sie nur dann neu gerendert wird, wenn eine neue Nachricht eintrifft.
Durch die Verwendung von ChangeDetectionStrategy.OnPush
können also Ressourcen eingespart und die Performance einer Angular-Anwendung deutlich verbessert werden.