React 기본 훅 설명

React에서 많이 사용하는 훅에 대해서 테이블로 정리 설명 한다.

훅 이름기능 설명주 사용 목적간단한 예시
useState상태 값을 만들고 변경할 수 있음사용자 입력, UI 상태 저장const [x, setX] = useState(0)
useReducer복잡한 상태 로직을 reducer 함수로 처리함상태가 여러 단계로 바뀌는 경우const [state, dispatch] = useReducer(reducer, init)
useContextContext 값을 읽어옴글로벌 상태 전달 (예: 테마, 언어)const theme = useContext(ThemeContext)
useRefDOM 요소나 변수를 저장하지만 화면 다시 그리지는 않음DOM 조작, 타이머 ID 저장 등const ref = useRef(null)
useImperativeHandle부모 컴포넌트에 노출할 ref 기능을 제어함라이브러리에서 ref 제어 시useImperativeHandle(ref, () => ({ focus }))
useEffect컴포넌트 렌더링 후 외부 시스템과 동기화 수행API 호출, 이벤트 등록/해제 등useEffect(() => { ... }, [deps])
useLayoutEffectDOM 그리기 전에 실행됨레이아웃 측정, 위치 계산useLayoutEffect(() => { ... }, [])
useInsertionEffectDOM 조작 전에 실행됨동적 스타일 삽입 (CSS-in-JS 라이브러리 등)useInsertionEffect(() => { ... }, [])
useMemo계산 결과를 메모이제이션 (기억) 함성능 최적화 (비싼 계산 최소화)useMemo(() => calc(), [deps])
useCallback함수 정의를 메모이제이션자식에게 함수를 props로 넘길 때useCallback(() => fn(), [deps])
useTransition비동기 상태 업데이트를 사용자 입력보다 느리게 처리함UI 응답성 향상const [start, isPending] = useTransition()
useDeferredValue특정 값을 느리게 갱신UI 일부만 느리게 갱신const deferred = useDeferredValue(value)
useDebugValueDevTools에서 훅 상태를 표시함커스텀 훅 디버깅용useDebugValue(state)
useId고유한 ID를 생성 (서버-클라이언트 간 일치 가능)접근성 속성(id-for 등)에 활용const id = useId()
useSyncExternalStore외부 저장소에 구독하고 일관성 있는 값 사용상태 관리 라이브러리 연결useSyncExternalStore(subscribe, getSnapshot)
useActionStateForm action의 상태를 저장하고 관리함서버 액션과 상태 결합const [state, action] = useActionState(actionFn, init)

댓글 남기기