🎯 Angular Performance – ChangeDetection, Signals & Zonenfrei
Wenn deine Angular-App langsam wirkt, ist es fast nie der Code selbst – sondern wie Angular ihn verarbeitet.
In diesem Beitrag zeige ich dir:
- Wie du ChangeDetection strategisch einsetzt
- Wie Signals dir bei Performance helfen
- Und wie du mit
zone-less
richtig durchstartest
🔄 ChangeDetection – Default vs. OnPush
🚨 Default (standardmäßig)
- Angular checkt die ganze Komponente + Kinder
- Oft zu viel, besonders bei großen UIs
✅ OnPush
@Component({
changeDetection: ChangeDetectionStrategy.OnPush
})
- Checkt nur bei
@Input()
-Änderung oderObservable
mitasync
- Weniger DOM-Checks = mehr Speed
⚡ Signals – Granularer, reaktiver
readonly name = signal('Ada');
readonly greeting = computed(() => `Hello ${name()}`);
➡ Kein Zone-Trigger nötig
➡ Kein ChangeDetectorRef.detectChanges()
➡ Nur echte Änderungen lösen Updates aus
🧠 Manual Trigger mit runOutsideAngular
this.zone.runOutsideAngular(() => {
// DOM-heavy logic z. B. animation, canvas
});
➡ Keine unnötigen ChangeDetection-Cycles mehr
🧱 Beispiel: Zonenfreies Setup
bootstrapApplication(AppComponent, {
providers: [
provideZoneChangeDetection({ eventCoalescing: true, runCoalescing: true })
]
});
- Nutze
@angular/core
experimentelle API - Ideal für High-Performance UIs
- Kombinierbar mit Signals
🧩 Weitere Performance-Tipps
trackBy
bei*ngFor
IMMER verwenden- Lazy Load von Modulen und Komponenten
- IntersectionObserver statt
*ngIf
für sichtbare Bereiche - Virtual Scroll für große Listen
🧪 Tools zum Messen
- Chrome DevTools → Performance Tab
- Lighthouse Reports
- Angular DevTools → ChangeDetection + Component Tree
✅ Fazit
Angular ist nicht langsam.
Aber du brauchst die richtigen Tools, um das Maximum rauszuholen:
- 🧠 Signals für Reaktivität
- 🧩 OnPush für Effizienz
- ⚡ Zonenfreiheit für volle Kontrolle
📍 Bald im Blog: 📚 Architektur-Playbook – Wie du Angular-Projekte von Anfang an sauber aufsetzt
Hast du Fragen oder ein Projekt im Kopf?
Ich freue mich auf deine Nachricht. Lass uns gemeinsam deine Vision verwirklichen!
Jetzt Kontakt aufnehmen