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
- Czym jest hydration
- Włączanie pełnego hydration
- Przyrostowy hydration za pomocą @defer
- Pomiar kluczowych wskaźników internetowych