TIL 34 | React Context API
Props의 문제점
일반적인 React 애플리케이션에서 데이터는 위에서 아래로 즉, 부모로 부터 자식에게 props
를 통해 전달 되지만, 애플리케이션 안의 여러 컴포넌트를 전해줘야 하는 props
의 경우 이 과정이 번거로울 수 있다. 그러므로 Context API를 이용하면 트리 단계 마다 명시적으로 props
를 넘겨주지 않아도 많은 컴포넌트가 이러한 값을 공유하도록 할 수 있다.
Context API
React Context API는 컴포넌트 트리 안에서 전역적(global)하게 공유할 수 있도록 고안된 방법이다.
Context
를 사용하여 컴포넌트 트리에 데이터를 공급 (provider)하거나, 수요(consumer) 할 수 있도록 설정하여 데이터 관리를 보다 수월하게 할 수 있다.
Context API 적용
React.createContext
context 객체를 만든다. context는 구독하고 있는 컴포넌트를 렌더링 할 때 React 트리 상위에서 가장 가까이 있는 공급자 (provider)로 부터 현재값을 읽는다.
const myContext = React.createContext(defaultValue);
📝 Default Value
Default Value
는 트리 안에서 적절한 Provider를 찾지 못했을때만 쓰는 값이다.- 만약 Provider를 통해
undefined
값을 보낸다고해도 Default Value를 읽지 않는다.
Context.Provider
Context 객체에 포함된 React 컴포넌트인 Provider는 Context를 구독하는 컴포넌트들에게 context 변화를 알려준다.
Provider는 Value Props를 받아서 하위에 있는 컴포넌트에게 전달한다. Provider 하위에서 Context를 구독하고 있는 모든 컴포넌트는 Provider의 value Props가 바뀔 때마다 다시 리렌더링 된다.
<mythContext.Provider value={/* ... */}>
Context.Consumer
Context 변화를 구독하는 React 컴포넌트 이다. 함수 컴포넌트 안에서 Context를 읽이 위해서 쓸 수 있다.
<MyContext.Consumer>
{value => /* context 값을 이용한 렌더링 */}
</MyContext.Consumer>
Reference
Context →(SITE)
Author And Source
이 문제에 관하여(TIL 34 | React Context API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@vi2920va/TIL-33-React-Context저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)