🧠 Angular Change Detection verstehen – OnPush, Signals & Zonenfrei

(Warum deine App manchmal langsam ist – und wie du es behebst)

Change Detection ist eines der mächtigsten – aber auch meistmissverstandenen Konzepte in Angular.
Hier lernst du, wie du Kontrolle gewinnst und Performance gezielt optimierst.


1️⃣ Default vs. OnPush verstehen

Default-Strategie checkt alle Komponenten immer, bei jedem Event.
Mit ChangeDetectionStrategy.OnPush reduzierst du das auf Input-Änderungen.

@Component({
  selector: 'app-my',
  changeDetection: ChangeDetectionStrategy.OnPush,
  ...
})

🧠 Tipp: Nutze immer OnPush – außer du hast einen triftigen Grund dagegen.


2️⃣ Signals für reaktive Updates

Mit Angular Signals kannst du reaktive Werte definieren, die automatisch Updates triggern:

const user = signal<User | null>(null);

effect(() => {
  if (user()) {
    console.log('Benutzer geladen:', user()?.name);
  }
});

Ideal in Kombination mit OnPush – granular, effizient, elegant.


3️⃣ Zonenfrei? Ja bitte!

Mit zone.js trackt Angular alle Async-Ereignisse – aber das ist nicht immer nötig.

Nutze @angular/core/rxjs-interop + runOutsideAngular für zoneless Performance:

this.ngZone.runOutsideAngular(() => {
  this.http.get(...).subscribe(...);
});

4️⃣ ChangeDetection bewusst steuern

Du kannst mit ChangeDetectorRef.markForCheck() gezielt Komponenten refreshen:

constructor(private cdr: ChangeDetectorRef) {}

ngOnChanges() {
  this.cdr.markForCheck();
}

5️⃣ Template-Optimierung

  • Vermeide [hidden], nutze *ngIf
  • Nutze trackBy in *ngFor
  • Setze async-Pipes sinnvoll ein

Fazit

Change Detection ist kein Mysterium.
Mit OnPush, Signals und bewusstem Zonen-Einsatz bekommst du ultraschnelle Angular-Apps.


🚀 Nächster Beitrag:
📚 Angular Style Guide 2025 – Konventionen, Struktur & Teamflow

Hast du Fragen oder ein Projekt im Kopf?

Ich freue mich auf deine Nachricht. Lass uns gemeinsam deine Vision verwirklichen!

Jetzt Kontakt aufnehmen