Profilowanie za pomocą karty Performance w Vue DevTools
Rejestrowanie aktualizacji komponentów, wykrywanie zbędnych ponownych renderowań oraz pomiar czasu komponentów.
Profilowanie za pomocą karty Performance w Vue DevTools to bezpłatna lekcja Vue Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Vue Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Vue Academy zawiera 4 lekcji w sumie.
Dlaczego warto profilować
Przed optymalizacją trzeba wiedzieć, gdzie zużywany jest czas. Vue DevTools zawiera widok wydajności i osi czasu, który rejestruje renderowanie komponentów, dzięki czemu można znaleźć niepotrzebnie wykonywaną pracę zamiast zgadywać.
Instalowanie Vue DevTools
Należy zainstalować rozszerzenie przeglądarki lub uruchomić samodzielną aplikację. W projektach Vite plugin vite-plugin-vue-devtools dodaje inspektor wewnątrz aplikacji.
npm install -D vite-plugin-vue-devtoolsRozpoczynanie nagrywania
Należy otworzyć kartę osi czasu lub wydajności w DevTools i nacisnąć przycisk nagrywania, a następnie wejść w interakcję z aplikacją. Zatrzymanie nagrywania zapisuje aktywność renderowania z tego przedziału czasu.
Oś czasu renderowania komponentów
Każde renderowanie komponentu pojawia się na osi czasu jako zdarzenie. Można sprawdzić, kiedy komponent został ponownie wyrenderowany i ile czasu zajęło jego renderowanie.
Wykres commitów
Commit to jedno przetworzenie aktualizacji DOM. Wykres commitów pokazuje każdy commit oraz komponenty, które zostały w nim wyrenderowane, co pozwala znaleźć commity obejmujące znacznie więcej komponentów, niż oczekiwano.
Wykres płomieni czasu renderowania komponentów
Wykres płomieni układa czasy renderowania rodziców i dzieci w stos. Szerokie paski oznaczają wolne renderowanie, a głębokie stosy pokazują, jak renderowanie rozchodzi się po drzewie.
Identyfikowanie niepotrzebnych renderowań
Niepotrzebne renderowanie ma miejsce wtedy, gdy komponent został ponownie wyrenderowany, ale wygenerował ten sam wynik. Widać je jako powtarzające się zdarzenia renderowania, których wynik nie zmienił DOM-u.
Ten sam wynik, nowe renderowanie
Częstą przyczyną jest przekazywanie nowo utworzonego obiektu lub funkcji strzałkowej zdefiniowanej bezpośrednio w szablonie jako props przy każdym renderowaniu, co uniemożliwia memoizację. Komponent potomny renderuje się ponownie, mimo że jego widoczny wynik pozostaje identyczny.
<!-- new object every parent render forces child update -->
<Child :config="{ mode: 'a' }" />Naprawa za pomocą stabilnych referencji
Należy przenieść stałe poza komponent lub opakować dane pochodne w computed, aby podczas kolejnych renderowań przekazywana była ta sama referencja.
const config = { mode: "a" };
// or: const config = computed(() => ({ mode: mode.value }));Korelowanie z interakcjami
Oś czasu rejestruje również zdarzenia myszy i klawiatury. Należy zestawić powolny commit z interakcją, która go wywołała, aby znaleźć dokładną ścieżkę kodu wymagającą optymalizacji.
Liczba renderowań w inspektorze komponentów
Inspektor komponentów może wyróżniać komponenty podczas ich aktualizacji. Obserwowanie licznika migającego przy każdej niezwiązanej zmianie stanu od razu ujawnia nadmiarowe renderowanie.
Szybkie sprawdzenie
Co przedstawia wykres commitów na karcie wydajności?
Podsumowanie
Należy używać karty wydajności lub osi czasu Vue DevTools do rejestrowania renderowań. Wykres commitów pokazuje każde opróżnienie DOM-u oraz komponenty, które zostały wyrenderowane, a wykres płomieniowy ujawnia powolne renderowania. Należy szukać niepotrzebnych renderowań — komponentów renderowanych ponownie mimo braku zmiany wyniku, często z powodu niestabilnych referencji propsów — i naprawiać je za pomocą stałych przeniesionych poza komponent lub computed.
Często zadawane pytania
Czy lekcja „Profilowanie za pomocą karty Performance w Vue DevTools” jest bezpłatna?
Tak — pełny tekst „Profilowanie za pomocą karty Performance w Vue DevTools” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Vue Academy, przejdź na CoddyKit PRO. Kurs Vue Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Profilowanie za pomocą karty Performance w Vue DevTools”?
Rejestrowanie aktualizacji komponentów, wykrywanie zbędnych ponownych renderowań oraz pomiar czasu komponentów. Ćwiczysz Vue Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Vue Academy?
Nie wymagamy żadnego doświadczenia. Vue Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Profilowanie za pomocą karty Performance w Vue DevTools”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Vue Academy?
Tak. Każda lekcja Vue Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- v-memo do zapamiętywania szablonów
- Profilowanie za pomocą karty Performance w Vue DevTools
- Wirtualne przewijanie dużych list
- Web Workers z Vue