useIsClient
클라이언트 사이드 렌더링 여부를 확인하는 Hook입니다. SSR 환경에서 클라이언트/서버 환경을 구분하여 처리해야 할 때 사용됩니다.
Return
boolean
- 클라이언트 환경이면 true
, 서버 환경이면 false
를 반환합니다.
Usage
import { useIsClient } from '@teamsparta/react';
function Example() {
const isClient = useIsClient();
return <div>{isClient ? '클라이언트' : '서버'}</div>;
}
Example
클라이언트 전용 컴포넌트
function ClientOnlyComponent() {
const isClient = useIsClient();
if (!isClient) {
return null;
}
return <div>클라이언트에서만 보이는 컴포넌트</div>;
}
브라우저 API 사용
function LocalStorageComponent() {
const isClient = useIsClient();
const [data, setData] = useState<string | null>(null);
if (!isClient) {
return null;
}
// localStorage는 클라이언트에서만 사용 가능
useEffect(() => {
setData(localStorage.getItem('key'));
}, []);
return <div>저장된 데이터: {data}</div>;
}
조건부 렌더링
function ConditionalComponent() {
const isClient = useIsClient();
return (
<div>{isClient ? <div>클라이언트 버전</div> : <div>서버 버전</div>}</div>
);
}
주의사항
- 서버 사이드 렌더링 시에는 항상
false
를 반환합니다. - 하이드레이션 이후에는
true
로 변경됩니다. - 브라우저 API를 사용하기 전에 반드시 클라이언트 환경인지 확인해야 합니다.
- 불필요한 조건부 렌더링을 피하기 위해 꼭 필요한 경우에만 사용하세요.