Hydration 오류란?
서버에서 렌더링된 HTML과 클라이언트에서 React가 다시 렌더링하려는 내용이 일치하지 않을 때 발생합니다.
export default function Page() {
return <div>{Math.random()}</div>; // ❌ 오류 가능
}
✅ 해결: useEffect 안에서 처리하거나 클라이언트 전용 렌더링
window, localStorage 등)export default function Page() {
return <div>{window.innerWidth}</div>; // ❌ SSR 시 오류
}
✅ 해결:
'use client';
import { useEffect, useState } from 'react';
export default function Page() {
const [width, setWidth] = useState(0);
useEffect(() => {
setWidth(window.innerWidth);
}, []);
return <div>{width}</div>;
}