개발/Next.JS

Next.js Context 사용법

웹 개발자 권혁진 2023. 3. 21. 22:05

Next.js 개발할때

 

부모컴포넌트에서 자식컴포넌트로 props를 넘겨야 할 일이 다분합니다.

 

단순하게 부모->자식 컴포넌트로 넘길땐 괜찮지만

 

 

firstComponent -> secondComponent -> thirdComponent

 

이런식으로 여러 컴포넌트를 거쳐 props를 넘기게 되면 나중에 유지보수하기도 힘들고 복잡하고 머리아프죠

 

이럴때 사용하는게 Context 입니다.

 

보통 로그인한 유저 데이터나 전역 어디서든 사용할 수 있는 데이터를 불러올때 Context를 사용합니다.

 

저같은 경우엔 axios instance를 Context에 담았습니다.

 

사용법을 알아봅시다.

 

 

// SomeContext.ts
import { createContext } from "react";
export default const someContext = createContext();

 

// _app.tsx
import someContext from "./SomeContext"

export default function App({ Component, ..pageProps }: AppProps) {
    const someValue = "value";
    <someContext.provider value={{ someValue }}>
        <Component {{..pageProps}}/>
    <someContext.provider/>
}

 

// SomeComponent.tsx
import { useContext } from "react";
import someContext from "./SomeContext";

export default function SomeComponent() {
	const value = useContext(someContext);
	console.log(someValue) // "value";
}

 

_app.tsx 파일처럼

 

provider value props에 object 형태로 값을 담게 되면

 

모든 컴포넌트에서 값을 사용할 수 있게 됩니다.