React · Context

Context API가 적합한 값과 아닌 값

Context는 props drilling을 자동으로 없애는 장치가 아니라, 여러 깊이에서 같은 값을 읽어야 할 때 Provider 아래 소비자에게 값을 공급하는 통로다.

01

값 성격

여러 깊이에서 읽지만 자주 바뀌지 않는 값인지 확인한다.

02

Provider 배치

값이 필요한 최소 subtree 위에 Provider를 둔다.

03

소비

하위 컴포넌트는 useContext로 값을 읽고 null 가능성을 처리한다.

04

렌더 통제

value 객체와 콜백 참조를 안정화하거나 context를 읽기/쓰기별로 나눈다.

Theme
넓은 읽기 여러 컴포넌트가 현재 테마와 토글 함수를 필요로 함
CSS 변수와 병행
Auth
세션 정보 사용자와 로그인 상태를 여러 화면에서 참조
권한 판정은 서버도 수행
Locale
언어 설정 문구와 포맷 기준을 앱 전체에 전달
동적 변경 비용 확인
Form field
부적합 후보 매 입력마다 바뀌는 값은 context 전체를 깨울 수 있음
폼 라이브러리나 로컬 상태 검토

기본값 · 값 안정성 · 범위 점검

기본값 Provider 밖에서 useContext를 호출할 때의 실패가 명확하다.
값 안정성 Provider value가 매 렌더마다 새 객체로 만들어지지 않는다.
범위 필요한 subtree보다 훨씬 위에 Provider를 두지 않는다.
성능 자주 바뀌는 값은 context 분리나 다른 저장 방식을 검토한다.