ํ ์ ํฌ๊ธฐ๋ก ์๋ผ๋จน๋ Next.js ํ์ต์ ๋ฆฌ์ฉ์ ๋๋ค.
3.3) ๋ ์ด์์ ์ค์ ํ๊ธฐ
3.3 ๋ ์ด์์ ์ค์ ํ๊ธฐ
Root Layout
src/app/layout.tsx ์์ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ด ๋ฃจํธ ๋ ์ด์์์ ํ์ ๋ชจ๋ ํ์ด์ง ์ปดํฌ๋ํธ์ ๋ ์ด์์์ผ๋ก ์ ์ฉ๋๋ค.
ํ์ด์ง๋ณ Layout
app
โโโ layout.tsx
โโโ page.tsx
โโโ search
โโโ layout.tsx
โโโ page.tsx
์ด๋ฐ์์ผ๋ก search ๊ฒฝ๋ก์๋ layout.tsx๊ฐ ์กด์ฌํ๋ค๋ฉด, root layout์ ๋ฎ๋ ๊ฒ์ด ์๋ ์ค์ฒฉ์ผ๋ก Layout์ด ์ ์ฉ๋๋ค.
๋ฐ๋ผ์ Root Layout > search/layout.tsx > search/page.tsx ์์ผ๋ก ๋ ๋๋ง์ด ๋๋ค.
Layout ์ค์ ์ฃผ์์ฌํญ
export default function Layout({ children }: { children: React.ReactNode }) {
return (
<div>
<div>์์ ์์น๋ฐ</div>
{children}
</div>
);
}
๋ฐ๋์ children์ props๋ก ๋ฐ์์ ํ์ํ๊ณ ์ถ์ ๋ถ๋ถ์ children์ ์์ฑํด์ฃผ์ด์ผ ํ๋ฉด์ page ์ปดํฌ๋ํธ๊ฐ ํ์๋๋ค.
Route Group : ํน์ ํ์ด์ง๋ค๋ง ๋์ผํ Layout์ ์ ์ฉ์ํค๊ณ ์ถ์ ๋
ํน์ ํ์ด์ง๋ค๋ง ํน์ ํน์ ํ์ด์ง๋ฅผ ์ ์ธํ ๋ชจ๋ ํ์ด์ง๋ค์ ๋์ผํ Layout์ ์ ์ฉ์ํค๊ณ ์ถ์ ๋๊ฐ ์๋ค.
์ด๋ Route Group์ ์ฌ์ฉํด์ ํ์ด์ง๋ค์ ๋ฌถ์ ์ ์๋ค.
(with-searchbar)
โโโ layout.tsx
โโโ page.module.css
โโโ page.tsx
โโโ search
โโโ page.tsx
RouteGroup : (with-searchbar)์ ๊ฐ์ด ์๊ดํธ๋ก ๋ฌถ์ด์ค ํด๋
RouteGroup์ ๊ฒฝ๋ก์ ์๋ฌด๋ฐ ์ํฅ์ ๋ฏธ์น์ง ์๊ณ , RouteGroup์ ๋ฌถ์ฌ์๋ ํ์ด์ง๋ค์๋ง ๋์ผํ layout์ ์ ์ฉ์ํฌ ์ ์๋ค.
'FE > Next.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Next.js] App Router - ๋ค๋น๊ฒ์ดํ (0) | 2025.05.08 |
---|---|
[Next.js] ๋ฆฌ์กํธ ์๋ฒ ์ปดํฌ๋ํธ (2) | 2025.05.07 |
[Next.js] App Router - ํ์ด์ง ๋ผ์ฐํ (0) | 2025.05.06 |
[Next.js] Page Router ์ฅ๋จ์ (0) | 2025.05.06 |
[Next.js] Page Router - ISR (4) | 2025.05.06 |