state hooks
useState
는 직접 업데이트할 수 있는 상태 변수를 정의하는 hook입니다.useReducer
는 reducer 함수 내부의 업데이트 로직화 함께 상태를 정의하는 hook입니다.context hooks
ref hooks
useRef
는 ref를 선언하는 hook입니다.useImperativeHandle
은 컴포넌트에 의해 노출되는 ref를 커스터마이징할 수 있게 해주는 hook입니다.useImperativeHandle
을 사용하여, 전체 ref를 노출시키지 않고 커스터마이징한 속성만 노출하도록 할 수 있습니다.effect hooks
useEffect
는 컴포넌트를 외부 시스템과 연결시켜줍니다.useLayoutEffect
는 브라우저가 화면을 repaint하기 전에 실행됩니다.useInsertionEffect
는 React가 DOM을 변경하기 전에 실행됩니다. 라이브러리는 여기서 동적 CSS를 삽입할 수 있습니다.performance hooks
이전 렌더링과 비교했을 때 데이터가 바뀌지 않았다면, React가 캐시된 연산을 재사용하거나 리렌더링을 건너뛰도록 하는 hook입니다.
useMemo
는 비싼 연산 결과를 캐시해주는 hook입니다.useCallback
은 자식 컴포넌트에게 전달하기 전에 함수 정의를 캐시해주는 hook입니다.화면이 업데이트되어야 해서 리렌더링을 건너뛸 수 없을 때, 동기 업데이트와 비동기 업데이트를 분리해서 업데이트에 우선순위를 줌으로써 성능을 향상시킬 수 있습니다.
useTransition
은 상태 변환을 비동기로 표시하여 다른 업데이트가 먼저 실행되도록 해주는 hook입니다.useDeferredValue
는 중요하지 않은 UI 업데이트를 지연시키고 다른 부분이 먼저 업데이트되도록 해주는 hook입니다.memo
로 감쌈으로써 PureComponent를 구현할 수 있습니다.