React Academy · Lekcja

Pomiar wydajności: Lighthouse i Core Web Vitals

Proszę porównać wyniki Lighthouse dla pełnej aplikacji React SPA i podejścia Astro islands z tą samą treścią.

Lekcja 4 z 413 kroki

Pomiar wydajności: Lighthouse i Core Web Vitals to bezpłatna lekcja React Academy na CoddyKit. To lekcja 4 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 React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Pomiar przed i po zmianach

Lighthouse jest standardowym narzędziem do pomiaru wydajności stron internetowych. Można uruchomić go w Chrome DevTools (na karcie Lighthouse) lub za pomocą interfejsu wiersza poleceń (npx lighthouse https://yoursite.com). Podczas oceniania Islands Architecture należy uruchomić Lighthouse na reprezentatywnych stronach przed migracją i po niej, aby obiektywnie zmierzyć uzyskane korzyści.

LCP: Largest Contentful Paint

LCP mierzy moment, w którym największy widoczny element treści kończy renderowanie. Islands Architecture poprawia LCP, ponieważ serwer od razu wysyła w pełni wyrenderowany kod HTML — przeglądarka nie musi czekać na JavaScript, aby wyrenderować treść. Obraz główny lub nagłówek, który byłby elementem LCP, jest renderowany na podstawie początkowej odpowiedzi HTML.

JavaScript nie jest potrzebny do uzyskania LCP

W aplikacji React typu SPA LCP często jest opóźniany, ponieważ przeglądarka musi pobrać i wykonać JavaScript, zanim React wyrenderuje element LCP. W przypadku Islands Architecture treść LCP znajduje się w początkowym kodzie HTML, więc wykonywanie JavaScriptu nie blokuje LCP. Jest to jedna z najważniejszych mierzalnych korzyści.

TBT: Łączny czas blokowania

Łączny czas blokowania mierzy, jak długo główny wątek jest blokowany przez zadania JavaScript trwające dłużej niż 50 ms. Hydratacja dużej aplikacji React SPA może generować setki milisekund TBT. Architektura wysp znacznie zmniejsza TBT, ponieważ ilość wykonywanego JavaScriptu jest proporcjonalna do liczby wysp, a nie do rozmiaru strony.

CLS: Skumulowane przesunięcie układu

Skumulowane przesunięcie układu mierzy stabilność wizualną — przemieszczanie się elementów podczas ładowania strony. Treści renderowane za pomocą JavaScriptu mogą powodować przesunięcia układu, gdy React renderuje elementy i zmienia ich wymiary. HTML renderowany po stronie serwera przez architekturę wysp zapobiega przesunięciom układu związanym z hydratacją, ponieważ początkowy układ pochodzi ze statycznego HTML, który nie zmienia się podczas hydratacji.

FID i INP: Responsywność interakcji

Opóźnienie pierwszego wejścia (First Input Delay, obecnie zastąpione przez Interaction to Next Paint, INP) mierzy, jak szybko strona reaguje na interakcje użytkownika. Architektura wysp poprawia INP, ponieważ każda wyspa ma mały, skoncentrowany pakiet JavaScriptu. Interakcje wewnątrz wyspy są wykonywane szybko, ponieważ nie trzeba planować pracy w dużym drzewie React.

Porównanie Lighthouse: SPA a wyspy

Typowe porównanie dla strony bloga wygląda następująco: pełna aplikacja React SPA może uzyskać w mobilnym Lighthouse wynik 45–65 (TBT: 800 ms, LCP: 3,2 s). Ta sama treść jako witryna Astro z jedną wyspą React może uzyskać wynik 90–98 (TBT: 80 ms, LCP: 1,1 s). Zyski są najbardziej widoczne na stronach zawierających dużo treści i oferujących niewiele interakcji.

Kompromis: aplikacje o wysokim poziomie interaktywności

Architektura wysp nie jest właściwym wyborem dla wysoce interaktywnych aplikacji, takich jak pulpity nawigacyjne, edytory kodu czy narzędzia do współpracy. W tych aplikacjach komponenty stale współdzielą stan i są wspólnie renderowane ponownie — narzut komunikacji między wyspami zniwelowałby zyski wydajnościowe i zwiększył złożoność architektury.

Optymalne zastosowanie: witryny zawierające dużo treści

Architektura wysp doskonale sprawdza się w witrynach zawierających dużo treści i oferujących rozproszoną interaktywność: blogach (czytanie treści, sporadyczne polubienie lub komentarz), dokumentacji (czytanie dokumentacji, sporadyczne wyszukiwanie lub przycisk kopiowania kodu), stronach docelowych (głównie statycznych, z wyspą formularza newslettera) oraz stronach produktów w sklepach internetowych (statyczne obrazy i opis, wyspa dodawania do koszyka).

Core Web Vitals i SEO

Google wykorzystuje Core Web Vitals (LCP, INP, CLS) jako sygnały rankingowe. Poprawa tych wskaźników za pomocą architektury wysp bezpośrednio wpływa na pozycję w wynikach wyszukiwania. Witryna, która dzięki zastosowaniu architektury wysp poprawia swój mobilny wynik Lighthouse z 55 do 92, jednocześnie zyskuje zarówno lepsze doświadczenia użytkowników, jak i korzyści SEO.

Dane z migracji w rzeczywistych projektach

Zespoły migrujące z Next.js React SPA do Astro w przypadku witryn marketingowych i dokumentacji zgłaszają powtarzalne rezultaty: rozmiar pakietów JavaScriptu zmniejsza się o 70–90%, wyniki wydajności mobilnej rosną o 20–40 punktów, a koszty hostingu serwera spadają, ponieważ pliki statyczne są udostępniane z CDN bez narzutu renderowania po stronie serwera przy każdym żądaniu.

Dlaczego architektura wysp znacznie skraca łączny czas blokowania (TBT)?

Dlaczego architektura wysp znacznie skraca łączny czas blokowania (TBT)?

Podsumowanie lekcji

Architektura wysp poprawia wszystkie wskaźniki Core Web Vitals: LCP korzysta z HTML renderowanego po stronie serwera, TBT spada, ponieważ ilość JavaScriptu jest proporcjonalna do poziomu interaktywności, CLS ulega zmniejszeniu dzięki stabilnym układom renderowanym po stronie serwera, a INP się poprawia dzięki małym, skoncentrowanym pakietom wysp. Wyniki Lighthouse dla stron zawierających dużo treści poprawiają się znacząco. Ten wzorzec nie sprawdza się w przypadku wysoce interaktywnych aplikacji, ale doskonale nadaje się do blogów, dokumentacji, stron docelowych i sklepów internetowych.

Bezpłatny start

Ucz się React dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
88
Lekcje
324

Często zadawane pytania

Czy lekcja „Pomiar wydajności: Lighthouse i Core Web Vitals” jest bezpłatna?

Tak — pełny tekst „Pomiar wydajności: Lighthouse i Core Web Vitals” 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 React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Pomiar wydajności: Lighthouse i Core Web Vitals”?

Proszę porównać wyniki Lighthouse dla pełnej aplikacji React SPA i podejścia Astro islands z tą samą treścią. Ćwiczysz React 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ąć React Academy?

Nie wymagamy żadnego doświadczenia. React 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 4 z 4.

Ile czasu zajmuje lekcja „Pomiar wydajności: Lighthouse i Core Web Vitals”?

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 React Academy?

Tak. Każda lekcja React 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

  1. Problem pełnej hydratacji
  2. Architektura islands: selektywna hydratacja
  3. Konfiguracja Astro i React Islands
  4. Pomiar wydajności: Lighthouse i Core Web Vitals
← Powrót do React Academy