React/React Framework
[Next.js] 공통 레이아웃과 _app.js
J-Plum
2023. 9. 6. 17:21
1. 하나의 공통된 Layout을 쓰는경우
1-1. 공통된 레이아웃을 가진 컴포넌트를 만든다.
1-2. pages/_app.js 를 만든다.
_app 파일에 대해서
- _app 파일은 서버 요청시 가장 먼저 실행되며, 공통 레이아웃의 역할을 합니다. (Next.js에서 제공하며 반드시 _app의 이름을 사용)
- _app.js 파일 내부의 App 컴포넌트는 다음과 같은 두 가지 중요한 인수를 받습니다
- Component: 현재 페이지 컴포넌트를 나타냅니다. 즉, 이후에 라우팅된 페이지 컴포넌트가 Component로 전달됩니다.
- pageProps: 현재 페이지 컴포넌트의 초기 속성(props)을 나타냅니다. SSR, SSG 등에서 미리 가져온 데이터 등이 포함됩니다.
2. 여러개의 Layouts를 사용하는 경우
2-1. 함수를 만들어서 넣어줍니다.
2-2. _app 수정하기
해당 페이지에 getLayout이 있다면 그 함수를 가지고와 retrun 시 Component를 값으로 넣어줍니다.
없다면 기존에 만들었던 <Layout> 컴포넌트에 page를 children 으로 받는 함수를 넣어 return 해줍니다.
기존에 만든 공통 레이아웃, 그리고 여러개의 공통 레이아웃을 사용하고자 만든 서브 레이아웃까지 적용하는 방법에 대해 알아보았습니다.