Context
- 데이터를 필요로 하는 컴포넌트에 바로 전달할 수 있음
- 코드가 깔끔해지고 데이터를 한 곳에서 관리하기 때문에 디버깅에도 유리


Context를 사용하기 전에 고려할 점
컴포넌트와 Context가 연동되면 재사용성이 떨어짐
다른 레벨의 많은 컴포넌트가 데이터를 필요로 하는 경우에만 사용해야한다데이터의 변경 사항을 모두 하위 컴포넌트에 브로드캐스트


Context 생성
const MyContext = React.createContext(기본값);
- 현재 context의 값을 가장 가까이에 있는 provider로부터 받아옴
- 만약 상위 레벨에 매칭되는 provider가 없다면 기본값이 사용됨
- 기본값으로 Undefined를 넣으면 기본값 사용X
Provider 사용
<MyContext.Provider value={/* some value */ }>
- 데이터를 제공해주는 컴포넌트
- 모든 Context객체는 Provider를 갖고있음
- context.provider 컴포넌트로 하위 컴포넌트들을 감싸주면 모든 하위컴포넌트들이 해당 context의 데이터에 접근할 수 있게됨
- 여러 개의 provider 컴포넌트는 중첩사용 가능
- 하나의 provider컴포넌트는 여러 개의 컨슈밍 컴포넌트와 연결될 수 있음
Consumer 컴포넌트
<MyContext.Consumer>
{value => /*컨텍스트의 값에 따라서 컴포넌트들을 렌더링 */}
</MyContext.Consumer>


- 생성된 context를 인자로 받아서 현재 context의 값을 return