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

공식 문서
https://react.dev/learn/sharing-state-between-components
Sharing State Between Components – React
The library for web and native user interfaces
react.dev
상태 끌어올리기
- 두 컴포넌트의 상태가 항상 같이 바뀌기를 원할 때 사용
- 두 컴포넌트에서 해당 상태를 제거, 부모 컴포넌트의 상태로 만듦
- 그리고 그걸 props로 내려주기
순서
- 자식 컴포넌트들에서 상태 없애기: 부모 props를 통해 자식을 조절함
- 부모가 자식들에게 하드코딩된 props 내려주기: 일단 확인을 위함
- 공통 부모에게 상태 추가: 자식에 있었던 거랑 똑같을 필요 X, 그냥 자식 조절하기에 적절한 거면 O
제어 컴포넌트 vs 비제어 컴포넌트
- 제어 컴포넌트
- 상태가 내부에 있어 부모가 그 상태에 영향을 줄 수 없음
- 외부 설정이 불필요하기 때문에 부모 컴포넌트가 쓰기 편함
- 하지만 얘네들을 조직화하기는 힘듦
- 비제어 컴포넌트
- 중요 정보가 props를 통해 내려옴
- 부모 컴포넌트가 해당 컴포넌트를 조절할 수 있음
- 굉장히 유동적임
- 하지만 부모가 props를 이용해 잘 설정해야 함
- 모든 컴포넌트를 이런 이분법적인 방식으로 나눌 수 있는 건 아님: 두 특징이 섞인 경우도 많음
- 컴포넌트 작성 시 무엇을 제어 요소로, 무엇을 비제어 요소로 둘 것인지 생각해보기
상태가 있을 곳을 정하기: single source of truth
- 각 상태마다 어떤 컴포넌트가 그걸 갖고 있을 것인지 정해야 함
- 상태를 갖고 있는 컴포넌트는 단 하나: 만약 다른 곳에서도 그 상태를 가져야 한다면 상태 끌어올리기 등의 방법을 고려할 것
'리액트 공식 문서 읽기' 카테고리의 다른 글
20화: Extracting state logic into a reducer (0) | 2023.06.18 |
---|---|
19화: Preserving and Resetting State (0) | 2023.06.17 |
17화: Choosing the State Structure (0) | 2023.06.17 |
16화: Reacting to Input with State (0) | 2023.06.16 |
15화: Updating Arrays in State (0) | 2023.06.16 |