[React] Context

승미니·2021년 6월 16일
0

React

목록 보기
4/10

1. Context란?

context를 이용하면 단계마다 일일이 props를 넘겨주지 않고도 컴포넌트 트리 전체에 데이터를 제공할 수 있습니다.
즉, 상위 컴포넌트에서 하위에 있는 모든 컴포넌트로 직접 데이터를 전달할 수 있다.

  • 전역적(global)이라고 볼 수 있는 데이터를 공유할 수 있도록 고안된 방법이다.
  • context를 사용하면 컴포넌트를 재사용하기가 어려워지므로 꼭 필요할 때만 써야한다.
  • 여러 레벨에 걸쳐 props 넘기는 걸 대체하는 데에 context보다 컴포넌트 합성이 더 간단한 해결책일 수도 있다.

2. Context.Provider

<MyContext.Provider value={/* 어떤 값 */}>

Context 오브젝트에 포함된 React 컴포넌트인 Provider는 context를 구독하는 컴포넌트들에게 context의 변화를 알리는 역할을 합니다
즉, Provider 컴포넌트를 이용해서 데이터를 전달한다.

  • Provider 컴포넌트는 value prop을 받아서 이 값을 하위에 있는 컴포넌트에게 전달한다.

3. Context.Consumer

<MyContext.Consumer>
  {value => /* context 값을 이용한 렌더링 */}
</MyContext.Consumer>

context 변화를 구독하는 React 컴포넌트이다.
이 컴포넌트를 사용하면 함수 컴포넌트안에서 context를 구독할 수 있습니다.
즉, Consumer 컴포넌트를 이용하여 데이터를 사용할 수 있다.

  • Context.Consumer의 자식은 함수여야한다.
  • 이 함수가 받는 value 매개변수 값은 해당 context의 Provider 중 상위 트리에서 가장 가까운 Provider의 value prop과 동일하다.
profile
Web Frontend Developer

0개의 댓글