본문 바로가기
FE - Tools/개발 도구

[Next.js] Next.js에서 Recoil Root 설정하는 법

by thedev 2023. 10. 20.

 

Next.js에서 Recoil Root 설정하는 법

 


 

 

 Next.js에서 Recoil을 사용하려면 React와는 초기 세팅 방법이 약간 다르기 때문에 Recoil Root를 어떻게 세팅하면 되는지 정리해보려 한다.

 

 

Next.js에서 Recoil 사용하는 법

 

1. Provider 생성

 

// app/RecoilRootProvider.tsx
// 컴포넌트 이름은 자유롭게 지정

import { ReactNode } from "react";
import { RecoilRoot } from "recoil";

type Props = {
  children: ReactNode;
};

export default function RecoilRootProvider({ children }: Props) {
  return <RecoilRoot>{children}</RecoilRoot>;
}

 

 Provider 역할을 할 컴포넌트를 하나 생성하고 RecoilRoot를 만들어 children을 감싸준다. children의 타입은 ReactNode로 지정하면 된다.

 

 

2. RootLayout에 적용하기

 

// app/layout.tsx

import RecoilRootProvider from "./RecoilRootProvider";

export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {

  return (
    <html>
      <body>
        <RecoilRootProvider>{children}</RecoilRootProvider>
      </body>
    </html>
  );
}

 

그리고 가장 위에 있는 layout.tsx, 즉 RootLayout으로 와서 children을 위에서 생성한 Provider로 감싸준다. 이렇게 해주면 Next.js에서 Recoil을 사용할 수 있다!😊