← 질문 목록
#108깊이 0
공유 상태는 어느 컴포넌트에 두는가?
그 상태를 읽거나 바꾸는 컴포넌트들의 가장 가까운 공통 조상에 둔다. 한 출처에서 값을 내려주고 변경 의도를 올려보낸다.
- 공통 조상상태와 변경 함수를 소유한다
- 자식 A값을 props로 받는다
- 자식 B변경 함수를 호출한다
각 자식이 같은 값을 따로 보관하면 동기화 코드가 생긴다. 한쪽 갱신이 빠지면 화면마다 다른 값을 보여주는 상태 불일치가 난다.
너무 높이 올리면 관련 없는 자식까지 의존하고 전달 경로가 길어진다. 상태가 넓게 공유되면 Context나 외부 저장소가 더 적합할 수 있다.