본문 바로가기

React

context

하위 컴포넌트로 매번 props 를 넘겨주지 않아도 컴포넌트 트리 전체에 데이터 제공

 

언제 context를 써야 하나

context는 전역적으로 데이터를 공유해야 할 때,

  • 현재 로그인한 유저 정보
  • 테마
  • 선호하는 언어
1. Context 객체를 만듬. 

import { createContext } from 'react';

const ThemeContext = createContext('light');


2. Context 객체를 구독하고 있는 컴포넌트를 렌더링할 때 
React는 트리 상위에서 가장 가까이 있는 Provider로부터 
현재값을 읽어옴. provider는 context의 값을 읽어오고 변화를 알리는 역할.
provider를 최상단 컴포넌트에서 제공. 

function App() {
  const [theme, setTheme] = useState('light');
  // ...
  return (
    <ThemeContext.Provider value={theme}>
      <Page />
    </ThemeContext.Provider>
  );
}

3. 하위 컴포넌트에서 사용

데이터를 사용하는 하위컴포넌트에서 useContext를 사용하여 
데이터를 가져와서 사용.


function Button() {
  // ✅ Recommended way
  const theme = useContext(ThemeContext);
  return <button className={theme} />;
}

 

 

 

 

'React' 카테고리의 다른 글

RN으로 HelpDog App 만들고 나서…  (0) 2024.03.18
React Native의 Core Components  (0) 2024.03.18