React

context api

용성 2021. 2. 10. 17:37

context를 이용하면 단계마다 일일이 props를 넘겨주지 않고도 컴포넌트 트리 전체에 데이터를 제공할 수 있습니다.

일반적인 React 애플리케이션에서 데이터는 위에서 아래로 (즉, 부모로부터 자식에게) props를 통해 전달되지만, 애플리케이션 안의 여러 컴포넌트들에 전해줘야 하는 props의 경우 (예를 들면 선호 로케일, UI 테마) 이 과정이 번거로울 수 있습니다. context를 이용하면, 트리 단계마다 명시적으로 props를 넘겨주지 않아도 많은 컴포넌트가 이러한 값을 공유하도록 할 수 있습니다.

 

React.createContext

Context 객체를 만들수 있다.

const MyContext = React.createContext(defaultValue);

Context.Provider

Provider 를 이용하여 Context 변경 사항을 자손들에게 제공 할 수 있다.

<MyContext.Provider value={/* some value */}></MyContext.Provider>

Provider 의 Value는 하위의 모든 Consumer 에서 사용할 수 있으며, Provider 하위의 모든 Consumer 는 Provider 의 value가 변경 될 때마다 재 렌더링 된다.

Context.Consumer

MyContext Provide의 Value의 변경 사항을 구독하며, Context 에서 가장 가까운 Provider 의 Value 를 참조한다.

<MyContext.Consumer>
{(value) => (/* render something based on the context value */)}
</MyContext.Consumer>

Class.contextType

Class 의 contextType 에 Context 객체를 할당 할 수 있다.
this.context 로 해당 Context 의 Value를 참조할 수 있다.

class Some extends Component {
static contextType = MyContext;
render() {
const value = this.context;
return {}
}
}
Some.contextType = MyContext;

Hook의 useContext

Hook의 useContext로 Context 객체의 value를 가져올 수 있다.

 

 

728x90

'React' 카테고리의 다른 글

React 용어 설명  (0) 2021.02.10
hook  (0) 2021.02.10
lifecycle  (0) 2021.02.10
리덕스 모듈  (0) 2021.02.10
리덕스  (0) 2021.02.10