1. useState
- 기본적인 Hooks
- 가변적인 상태를 지닐 수 있게 함
- useState에 기본값을 넣어줌
- 배열의 첫 번째 원소는 상태 값, 두 번째 원소는 상태를 설정하는 함수
2. useEffect
- 리액트 컴포넌트가 렌더링될 때마다 특정 작업을 수행하도록 설정하는 Hooks
- componentDidMount + componentDidUpdate
- 두 번째 배열에 무엇을 넣는지에 따라 실행되는 조건이 달라짐
3. useReducer
- 더 다양한 상태를 다른 값으로 업데이트해 주고 싶을 때 사용
- 현재 상태, 업데이트를 위해 필요한 정보를 담은 액션 값을 전달받아 새로운 상태를 반환
- 새로운 상태를 만들 때는 불변성을 지켜줘야 함
- 액션 객체는 반드시 type을 지니고 있을 필요가 없음
- 컴포넌트 업데이트 로직을 컴포넌트 바깥으로 빼낼 수 있다는 것
4. useMemo
- 함수형 컴포넌트 내부에서 발생하는 연산을 최적화할 수 있음
5. useCallback
6. useRef
- ref를 쉽게 사용할 수 있도록 해줌
- ref를 설정하면 useRef를 통해 만든 객체 안의 current 값이 실제 엘리먼트를 가르킴