이 글은 단순히 리액트 공식 문서를 읽고 베꼈을 뿐이다!! 학습 목적이라면 공식 문서를 보는 걸 추천한다.

공식 문서
https://react.dev/learn/scaling-up-with-reducer-and-context
Scaling Up with Reducer and Context – React
The library for web and native user interfaces
react.dev
Reducer와 context
- reducer: 컴포넌트의 상태 업데이트 로직을 합침
- context: 정보를 트리 아래 깊은 곳의 컴포넌트에게까지 전달 가능
- context 안에 상태와 dispatch 함수를 같이 넣어서 상태 관리 가능
Reducer와 context를 합치는 세 단계
- context 만들기
- context 두 개를 만듦: 상태값 읽기 전용, dispatch 함수 전용
- 상태와 dispatch를 context 안에 넣기
- 해당 context를 제공할 컴포넌트에서
useReducer
를 이용해 상태와 dispatch를 만듦 - 만든 것들을 각 context provider의 value로 넣어서 자식에게 제공
- 해당 context를 제공할 컴포넌트에서
- 원하는 곳에서 context 쓰기
하나의 파일로 정리하기
createContext
와useReducer
를 한 파일에 넣기- children prop을 이용해 context를 제공해 주는 컴포넌트 만들어서 export
- 상태값과 dispatch 함수를 읽을 수 있는 훅도 만들어서 export
- 관심사 분리 대성공!!: 기존의 컴포넌트는 실제 구동 원리는 신경쓰지 않고 UI에만 집중할 수 있음
'리액트 공식 문서 읽기' 카테고리의 다른 글
24화: Manipulating the DOM with Refs (0) | 2023.06.19 |
---|---|
23화: Referencing Values with Refs (0) | 2023.06.19 |
21화: Passing Data Deeply with Context (0) | 2023.06.18 |
20화: Extracting state logic into a reducer (0) | 2023.06.18 |
19화: Preserving and Resetting State (0) | 2023.06.17 |