- useState
- 초기값이 설정된 상태 값인 state와 상태 값을 갱신하는 setState함수를 반환한다
- useEffect
- 첫번째 인자로 함수를 받아 화면이 렌더링 된 후에 실행한다
- 두번째 인자로는 조건부 실행을 설정할 수 있는데, 인자를 빈 값으로 둘 경우에는 렌더링 후 초기 1회만 실행되고, 인자를 전달 한 경우 렌더링 후 1회 실행되고, 이후 인자로 전달된 변수의 값이 변경될 때마다 실행된다
- useContext
- createContext로 선택된 객체를 받아, 객체의 값을 트리 내부에서 Context.Provider의 value 옵션으로 전달하여 props를 글로벌하게 사용할 수 있게 한다, 즉 한군데에서 설정한 값을 여러 컴포넌트에서 글로벌하게 사용하도록 돕는다
- useRef
- 두가지의 사용법이 있다
- 첫째로, 컴포넌트 안에서 조회 및 수정할 수 있는 변수를 관리할 때 사용한다
useRef로 관리되는 변수는 설정 후 바로 조회가 가능하며, 값이 바뀌어도 리렌더링 되지 않아 최적화에 도움이 된다
- 둘째로, DOM을 직접 선택해야 할 때 사용한다
useRef로 Ref객체를 생성하고, DOM에 ref 옵션으로 설정해주면 Ref.current값이 해당 DOM을 가르키게 된다
- 이를 통해 스크롤바의 위치 값이나 특정 앨리먼트의 크기 값 전달 등을 구현할 수 있다
- useCallback
- 메모이제이션한 함수를 반환하며, 첫번째 인자로 전달한 함수를 두번째 인자로 넘어 온 의존성 배열 값이 변경될 때까지 저장해두고 재사용한다
- 컴포넌트가 랜더링될때마다 함께 리렌더링 되는 것을 막아 최적화를 돕는다
- useMemo
- 메모이제이션한 값을 반환하며, 첫번째 인자로 전달한 함수의 결과값을 저장해두고 재사용하다가, 두번째 인자로 넘어 온 의존성 배열의 값이 변경될 때에 메모이제이션 값을 갱신한다
- useCallback과 마찬가지로 무분별한 리렌더링을 방지하여 최적화를 돕는다