page.js
page는 특정 라우트에 고유한 UI를 의미합니다.
app/blog/[slug]/page.tsx
export default function Page({
params,
searchParams,
}: {
params: { slug: string }
searchParams: { [key: string]: string | string[] | undefined }
}) {
return <h1>My Page</h1>
}
app/blog/[slug]/page.js
export default function Page({ params, searchParams }) {
return <h1>My Page</h1>
}
Props
params
(optional)
루트 세그먼트부터 해당 페이지까지의 동적 라우트 매개변수를 포함하는 객체입니다. 예를 들어:
Example | URL | params |
---|---|---|
app/shop/[slug]/page.js | /shop/1 | { slug: '1' } |
app/shop/[category]/[item]/page.js | /shop/1/2 | { category: '1', item: '2' } |
app/shop/[...slug]/page.js | /shop/1/2 | { slug: ['1', '2'] } |
searchParams
(optional)
현재 URL의 검색 매개변수 (opens in a new tab)를 포함하는 객체입니다. 예를 들어:
URL | searchParams |
---|---|
/shop?a=1 | { a: '1' } |
/shop?a=1&b=2 | { a: '1', b: '2' } |
/shop?a=1&a=2 | { a: ['1', '2'] } |
알아두면 좋은 점:
searchParams
는 값을 사전에 알 수 없는 **Dynamic API**입니다. 이를 사용하면 페이지가 요청 시 **동적 렌더링**으로 전환됩니다.searchParams
는URLSearchParams
인스턴스가 아닌 일반 JavaScript 객체를 반환합니다.
Version History
Version | Changes |
---|---|
v13.0.0 | page introduced. |