기존의 리액트 어플리케이션에서는 컴포넌트의 props를 통한 데이터 전달(단반향)
-> 코드도 복잡해지고 사용하기 불편함
Context는 컴포넌트 트리를 통해 곧바로 데이터를 전달
기존방식
context 방식
-> 여러개의 컴포넌트들이 접근해야하는 데이터(로그인여부, UI테마 등)
주의할점
- conponenet와 context가 연동되면 재사용성이 떨어짐
const myContext = React.createContext(기본값)
-> 만약 상위레벨에 매칭되는 provider가 없다면 기본값이 사용됨
-> 기본값으로 undefined를 넣으면 기본값이 사용되지 않음
<MyContext.Provider value={something:'something'}>
-> value가 하위 컴포넌트들에 전달됨
-> 컨슈밍
-> 값이 변경되면 재랜더링 됨
<MyContext.Consumer>
{value => /* 컨텍스트의 값에 따라서 컴포넌트들을 렌더링 */}
</MyContext.Consumer>