React Hooks - useContext
- useContext란
- 상태를 공유하는 context (상태 변경 시 모두 다시 랜더링)
- context는 App 안에서 전역적으로 데이터를 여러 컴포넌트끼리 쉽게 공유할 수 있는 방법 제공
- 상위 컴포넌트의 data가 필요한 하위 컴포넌트들은 useContext 훅을 사용하여 데이터를 받아온다.
- Provider로 부터 Consumer까지 value(state) 공유
- Provider의 자식들은 해당 context의 상태를 바로 접근 가능
- createContext → Context.Provider → Context.Consumer (useContext)
- import
- import { createContext } from ‘react’;
- import { useContext } from ‘react’;
- 사용
- 순서
- createContext
- const MyContext = createContext<MyContextProp>();
- Provider
- export const MyProvider = ({ children }): PropsWithChildren) ⇒ { … };
- useContext
- const useMyContext = () ⇒ useContext(MyContext);
- createContext
- 예시 1
-
import { createContext } from 'react'; export const MyContext = createContext({x: 1}); ---------------------------------------------- import { MyContext } from '../myContext'; … <MyContext.Consumer> { value => <h1>x: {value.x}</h1> } </MyContext.Consumer>
-
- 예시 2
-
export const MyContext = createContext(); render( <MyContext.Provider value={{변수}}> <App /> </MyContext.Provider> ); ---------------------------------------------- import { useContext } from ‘react’; const 변수 = useContext(MyContext);
-
- 순서
'Front-end > React' 카테고리의 다른 글
[React] React Hooks - useCallback, useMemo, memo, useId (0) | 2024.02.29 |
---|---|
[React] React Hooks - useEffect, useLayoutEffect (0) | 2024.02.23 |
[React] React Hooks - forwardRef (0) | 2024.02.21 |
[React] React Hooks - useRef (0) | 2024.02.20 |
[React] React Hooks - useState (0) | 2024.02.20 |