Next.jsPytanie 08 z 15
Co to hydration i skąd bierze się hydration mismatch?
Najpierw odpowiedz na głos lub w myślach, potem porównaj.
Odpowiedź
Hydration sprawia, że wcześniej wygenerowany HTML staje się interaktywny: React wiąże z nim logikę komponentów w przeglądarce.
Mismatch występuje, gdy początkowy wynik klienta nie zgadza się z HTML z serwera.
Przykłady przyczyn: losowa wartość podczas renderowania, różne daty lub strefy czasowe, nieprawidłowe zagnieżdżenie HTML, odczyt localStorage zmieniający pierwszy widok.
JSX
'use client';
import { useEffect, useState } from 'react';
export default function SavedTheme() {
const [theme, setTheme] = useState('light');
useEffect(() => {
setTheme(localStorage.getItem('theme') || 'light');
}, []);
return <p>{theme}</p>;
}Pułapka: suppressHydrationWarning nie naprawia przyczyny. Najpierw zapewniam zgodny pierwszy render.
Jak poszło? Bądź szczery — „Jeszcze nie” dodaje pytanie do powtórki.
Powiązane pytania
- C-P09 · Co oznaczają SSR, SSG i hydratacja? — React, Next.js i frontend