For the complete documentation index, see llms.txt. This page is also available as Markdown.

레이아웃

레이아웃은 여러 페이지에서 반복되는 UI 요소(헤더, 네비게이션 바, 푸터 등)를 일관성 있게 관리하기 위한 구조예요. 공통 레이아웃을 정의하면 코드 중복을 줄이고, 일관된 사용자 경험을 제공할 수 있어요.

레이아웃 파일 만들기

레이아웃은 _layout.tsx 파일을 생성해서 정의해요. 파일의 위치에 따라 적용되는 범위가 달라져요.

import { PropsWithChildren } from "react";

export default function Layout({ children }: PropsWithChildren) {
  return <>{children}</>;
}

레이아웃 적용 범위 설정하기

레이아웃은 파일 경로에 따라 자동으로 적용돼요.

  • pages/_layout.tsx: 모든 페이지에 전역 적용돼요.

  • pages/about/_layout.tsx: intoss://{서비스명}/about 하위의 모든 페이지에만 적용돼요.

레이아웃은 중첩해서 사용할 수 있어요. 여러 레이아웃이 함께 있을 때는 상위 디렉토리의 레이아웃부터 순서대로 적용돼요.

pages/
├── _layout.tsx          // 전역 레이아웃
├── about/
│   ├── _layout.tsx     // about 섹션 레이아웃
│   ├── index.tsx       // about 메인 페이지
│   └── team.tsx        // 팀 소개 페이지
└── index.tsx           // 메인 페이지

예를 들어, 위와 같은 구조라면 about/team.tsx 페이지는 아래 순서로 레이아웃이 적용돼요.

  1. pages/_layout.tsx (전역 레이아웃)

  2. pages/about/_layout.tsx (섹션 레이아웃)

  3. pages/about/team.tsx (실제 페이지 컴포넌트)

이렇게 구성하면 전역적으로 필요한 UI 요소와, 특정 섹션에서만 필요한 UI 요소를 분리해서 관리할 수 있어요.

레이아웃 예시

전역 레이아웃

모든 페이지에 공통으로 적용되는 레이아웃을 만들어볼게요.

섹션별 레이아웃

특정 섹션에서만 사용하는 레이아웃을 만들 수 있어요.

레이아웃에서 쿼리 파라미터 받아오기

레이아웃에서도 쿼리 파라미터를 사용할 수 있어요. useParams 훅을 이용하면 현재 화면의 파라미터를 읽어서 동적으로 활용할 수 있어요.

useParams 훅 사용 예시

아래 예시는 URL 쿼리 파라미터로 전달된 title 값을 가져와서 화면 상단 제목으로 표시해요.

참고 문서

마지막 업데이트

도움이 되었나요?