Angular · Senior · Pytanie 15 z 75
Dlaczego gettery i metody w szablonach to częsty problem z wydajnością?
@for (p of filteredProducts(); track p.id) { <li>{{ p.name }}</li> }
filteredProducts() { return this.products.filter((p) => p.visible); }- ✓Poprawna odpowiedź: Wykonują się przy każdym sprawdzeniu i zwracają nowe tablice, więc lista jest za każdym razem przeliczana (i może być ponownie renderowana)
- 2Szablony nie mogą wywoływać metod z parametrami
- 3Gettery są obliczane tylko raz i cache'ują nieaktualne dane
Wyjaśnienie
Zamień dane pochodne w sygnał computed() lub czysty pipe: przeliczają się tylko przy zmianie wejść. Profiluj w Angular DevTools, by znaleźć komponenty sprawdzane zbyt często.