0Pricing
Angular Academy · Lekcja

Czym jest hydration

Zrozumieć, jak hydration ponownie wykorzystuje HTML serwera

Czym jest hydration to bezpłatna lekcja Angular Academy na CoddyKit. To lekcja 1 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 Angular Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Angular Academy zawiera 4 lekcji w sumie.

Definiowanie hydratacji

Hydratacja to proces, w którym aplikacja Angular po stronie klienta ponownie wykorzystuje kod HTML wyrenderowany przez serwer, dołączając do istniejącego DOM obsługę zdarzeń i stan zamiast usuwać go i renderować ponownie.

Życie bez hydratacji

Starsze rozwiązania SSR korzystały z destrukcyjnej hydratacji: klient usuwał DOM serwera i renderował wszystko od początku. Powodowało to widoczne migotanie i marnowało pracę wykonaną przez serwer.

Niedestrukcyjna hydratacja

Współczesny Angular wykonuje niedestrukcyjną hydratację: przechodzi po istniejącym DOM, dopasowuje go do drzewa komponentów i ponownie wykorzystuje węzły. Bez migotania, z mniejszą ilością pracy i lepszą wydajnością.

Dlaczego poprawia wskaźniki

Ponowne wykorzystanie kodu HTML serwera oznacza, że największa treść pozostaje wyrenderowana, co pomaga poprawić LCP, a także zapobiega przesunięciom układu wynikającym z ponownego renderowania, co pomaga poprawić CLS. Aplikacja staje się interaktywna bez ponownego rysowania.

Obraz procesu w dwóch etapach

Etap pierwszy: serwer renderuje kod HTML i wysyła go. Etap drugi: przeglądarka pobiera kod JavaScript, uruchamia Angular i przeprowadza hydratację istniejących znaczników, aby stały się interaktywne.

Dopasowanie struktury DOM

Hydratacja zakłada, że drzewo komponentów klienta utworzy tę samą strukturę, którą utworzył serwer. Jeśli struktury się różnią, Angular zgłasza niezgodność hydratacji.

// NG0500: During hydration Angular expected <div> but found <span>

Typowe przyczyny niezgodności

Bezpośrednia modyfikacja DOM, gałęzie zależne od przeglądarki zmieniające znaczniki, nieprawidłowe zagnieżdżenie HTML oraz niedeterministyczna treść (na przykład Math.random() lub Date.now() w szablonach) powodują niezgodności.

Unikanie ręcznych zmian DOM

Nie należy imperatywnie modyfikować DOM podczas SSR, na przykład za pomocą innerHTML poza Angular. Należy pozwolić Angularowi zarządzać DOM, aby klient i serwer zachowywali zgodność.

Mechanizm awaryjny ngSkipHydration

Jeśli komponent rzeczywiście nie może zostać poddany hydratacji, na przykład zewnętrzny widżet modyfikujący DOM, wyłącz go z hydratacji za pomocą ngSkipHydration; Angular ponownie wyrenderuje tylko to poddrzewo.

<app-legacy-widget ngSkipHydration></app-legacy-widget>

Hydratacja wymaga SSR

Hydratacja ma zastosowanie tylko wtedy, gdy istnieje kod HTML wyrenderowany po stronie serwera, który można ponownie wykorzystać. Aplikacja działająca wyłącznie w modelu CSR nie ma czego hydratować — hydratacja to kliencka część SSR.

Co dalej

Hydratacja może być pełna (cała aplikacja jest hydratowana podczas ładowania) albo inkrementalna (poszczególne części są hydratowane na żądanie). Wybór właściwej strategii ma kluczowe znaczenie dla wydajności i zostanie omówiony w kolejnych lekcjach.

Szybkie sprawdzenie

Sprawdź swoją wiedzę na temat hydratacji.

Podsumowanie

Hydratacja w sposób nieinwazyjny ponownie wykorzystuje kod HTML serwera po stronie klienta, poprawiając LCP i CLS. Niezgodności wynikają z ręcznych zmian w DOM-ie lub niedeterministycznego oznaczenia; jako rozwiązanie awaryjne użyj ngSkipHydration. Hydratacja to kliencka część SSR.

Często zadawane pytania

Czy lekcja „Czym jest hydration” jest bezpłatna?

Tak — pełny tekst „Czym jest hydration” 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 Angular Academy, przejdź na CoddyKit PRO. Kurs Angular Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Czym jest hydration”?

Zrozumieć, jak hydration ponownie wykorzystuje HTML serwera Ćwiczysz Angular 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ąć Angular Academy?

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

Ile czasu zajmuje lekcja „Czym jest hydration”?

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

Tak. Każda lekcja Angular 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. Czym jest hydration
  2. Włączanie pełnego hydration
  3. Przyrostowy hydration za pomocą @defer
  4. Pomiar kluczowych wskaźników internetowych
← Powrót do Angular Academy