
1. Layout
: 필요한 것을 복사 붙여넣기 없이 어디서나 사용할 수 있는 시스템
2. Layout 적용 과정
- layout component에 있는 export된 default component를 렌더링 → 실제 렌더링
- 이동하려는 페이지를 URL을 통해 인식 → component(layout component의 children prop)를 렌더링
- TypeScript) children의 타입이 ReactNode
- children이 실제 내가 이동하려는 페이지
import Navigation from "./components/navigation"
export const metadata = {
title: 'Next.js',
description: 'Generated by Next.js',
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>
<Navigation />
{children}
</body>
</html>
)
}
3. 특정 Layout 만들기
- 해당 URL 폴더에 layout.tsx 파일 만들기
- 기존의 layout.tsx 파일 복사 붙여넣기 해서 틀 잡고 수정하기
export default function AboutUsLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<div>
{children}
© Next JS is great!
</div>
)
}


- 해당 URL 내에 페이지 만들기
- 새로운 페이지의 layout이 없는 경우 상위 폴더의 layout이 적용되어있음
export default function Sales() {
return (
<div>
<h1>Sales jobs</h1>
</div>
);
}


- Layout은 중첩이 가능함



Share article