몽땅뚝딱 개발자

[React] Context API 본문

Development/React.js · Next.js

[React] Context API

레오나르도 다빈츠 2022. 9. 25. 16:59


 

 

컴포넌트가 중첩되어있을 경우, 자식에서 자식으로 props를 사용하여 계속 넘겨야 하기 때문에 데이터 공유가 힘들다.

이 때 Context API를 사용할 수 있다.

 

 

◽ Context API 사용하기

1. 변수를 선언한다.

import {createContext} from "react";

let TestContext = createContext()
// 다른 컴포넌트와 공유할 경우 export를 붙여준다.
// export let Context = createContext()

 

2. 아래와 같이 공유할 컴포넌트를 감싸준다.

// 공유할 변수는 여러개 작성할 수 있다.
<TestContext.Provider value={ {stock, item} }>
  <Detail shoes={item} />
</TestContext.Provider>

 

3. 공유할 컴포넌트를 import 한다.

import {TestContext} from "../App";

function Detail(props) {
    let testVal = useContext(TestContext)
    console.log(testVal);
    
    // 디스트럭쳐링 문법으로 아래처럼 사용할 수 있다.
    // let { stock } = useContext(TestContext)
    
    // ...
}

 

로그 메세지

 

 

 

 

◽ Context API를 사용하지 않는 이유

1. state를 변경할 때 비효율적으로 불필요한 컴포넌트까지 모두 재렌더링 된다.

2. useContext()를 사용하는 컴포넌트에서는 일일이 Context를 import 하는 것이 번거로울 수 있다.

 

= 그래서 리덕스같은 외부라이브러리를 사용한다.

 

 


 

출처

 

React 리액트 기초부터 쇼핑몰 프로젝트까지! - 코딩애플 온라인 강좌

리액트 쉽게 설명하기 장인, 코딩애플입니다. '상태관리를 위해 객체를 부모 컴포넌트의 state로부터 props로 받아와서 리턴해주세요' 같은 변태 개발자용어 쓰면서 리액트 어렵게 설명하는 나쁜

codingapple.com

 

Comments