Jak wiecie, w trosce o dobrą wydajność zawsze staramy się minimalizować renderowanie w aplikacjach jednostronicowych. Na przykład w React za każdym razem, gdy stan lub właściwości zmieniają się w komponencie, ta zmiana powoduje ponowne wykonanie tego komponentu, ponowne oszacowanie i ostatecznie ponowne renderowanie.

Czy w Angularze są jakieś podobne warunki? i jakie są najlepsze praktyki i wzorce redukcji dodatkowego renderowania?

0
ali saberimovahed 5 styczeń 2022, 13:16
Tak, są one podobne do komponentów Reach: gdy zawartość w komponencie ulegnie zmianie, należy ją przerysować
 – 
Justinas
5 styczeń 2022, 13:20
2
Przeczytaj o wykrywaniu zmian: blog.angular- uniwersytet.io/…
 – 
Justinas
5 styczeń 2022, 13:21
Dzięki, ale nie chodziło mi o skutki uboczne.
 – 
ali saberimovahed
5 styczeń 2022, 13:25

1 odpowiedź

Najlepsza odpowiedź

To ogromny temat do omówienia tutaj, ale na początek proponuję następujący artykuł: https://blog.angular-university.io/how-does-angular-2-change-detection-really-work/

TLDR;

Dzieje się tak, że Angular podczas uruchamiania łata kilka niskopoziomowych interfejsów API przeglądarki, takich jak na przykład addEventListener, która jest funkcją przeglądarki używaną do rejestrowania wszystkich zdarzeń przeglądarki, w tym obsługi kliknięć. Angular zastąpi addEventListener nową wersją

Rozszerzając więc podstawową funkcjonalność, angular rozumie zmiany, które powodują ponowną ocenę wartości i renderowanie potrzeb.

Jako dodatek, musimy wspomnieć, że porównania nie są głęboko w typach referencyjnych, więc powinno nastąpić trochę obsługi.

W artykule wymieniono kilka metod poprawiania wydajności, takich jak

  1. Metoda wykrywania zmiany typu push.
  2. Wyłączanie automatycznego wykrywania komponentu i ręczne uruchamianie cykli.
  3. Korzystanie z niezmiennych obiektów za pomocą bibliotek line immutable.js

Jak możesz zrozumieć, są to ich własne pułapki i rozważania

0
Athanasios Kataras 5 styczeń 2022, 13:33
Dzięki za odpowiedź.
 – 
ali saberimovahed
5 styczeń 2022, 14:17