기존 리액트처럼 한 페이지 내에 여러 컴포넌트들이 병렬적으로 있다고 생각해보자.
이것을 Next.js로 만든다면 어떻게 할까?
한 페이지에 두개의 컴포넌트 페이지가 있고, 각각 렌더링되는 형태를 상상할 수 있다.
slot 을 활용한다.
폴더명 앞에 @ 를 붙이면, 그 부모 폴더의 layout.tsx 파일에서 props로 사용할 수 있다.
➕ route group과 마찬가지로, URL 경로에 영향을 주지 않는다.
src/
├── app/
│ ├── home/
│ │ └── page.tsx // home페이지
│ └── parallel/
│ ├── page.tsx // parallel페이지
│ ├── layout.tsx
│ └── @sidebar/ // slot -> 병렬 렌더링될 컴포넌트를 보관하는 폴더
│ └── page.tsx // 병렬 렌더링될 컴포넌트 페이지 파일
│ └── layout.tsx // slot 내 page가 상위 layout.tsx 파일에 prop으로 전달됨
... -> 해당 props의 이름은 @ 뒤 이름으로 지정된다.
//layout.tsx
import { ReactNode } from "react";
export default function Layout({ // 자동으로 받아온 sidebar
children,
sidebar
}: {
children: ReactNode;
sidebar: ReactNode;
}) {
return <div>{children}{sidebar}</div>;
}