Angular · Senior · Frage 15 von 75
Warum sind Getter oder Methoden in Templates ein häufiges Performance-Problem?
@for (p of filteredProducts(); track p.id) { <li>{{ p.name }}</li> }
filteredProducts() { return this.products.filter((p) => p.visible); }- 1Sie laufen bei jeder Prüfung, und jedes neue Array wertet die Liste neu aus
- 2Templates können überhaupt keine Methoden mit Parametern aufrufen
- 3Getter werden nur einmal ausgewertet und liefern dann veraltete Daten
Antwort zeigen
Richtige Antwort: Sie laufen bei jeder Prüfung, und jedes neue Array wertet die Liste neu aus
Erklärung
Mach abgeleitete Daten zu einem computed()-Signal oder einer reinen Pipe: sie werden nur neu berechnet, wenn sich die Eingaben ändern. Mit den Angular DevTools findet man Komponenten, die zu oft geprüft werden.