← inaro.devAI駆動開発 学習ツール
基礎

layoutと共通UI

なぜ学ぶか: どのページにもあるヘッダーとフッター — 全ページにコピペしていたら管理不能です。Next.jsはlayout.tsxに「共通の骨格」を一度だけ書きます。例を見てください。

まずはこの例を見てみましょう

// app/layout.tsx — 全ページ共通の骨格export default function RootLayout({ children }: { children: React.ReactNode }) {  return (    <html lang="ja">      <body>        <header>共通ヘッダー</header>
        <main>{children}</main>   {/* ← ここに各ページがはめ込まれる */}
        <footer>共通フッター</footer>      </body>    </html>  );}

layoutが「額縁」、各ページ(page.tsx)が「絵」。childrenの位置に絵がはめ込まれます。

layout.tsx=ページを包む共通の骨格

ヘッダー・フッターなど全ページ共通の部分を書く場所です。例の{children}の位置に、URLに応じたページが差し込まれます。

ページを移動してもlayoutは残る

ページを移ってもlayout部分は描き直されません。「ヘッダーがちらつかない」のはこの仕組みのおかげです。

修正依頼の指針

「全ページのヘッダーを直して」→ layout.tsx、「このページだけ直して」→ 該当のpage.tsx。AIへの指示もこの区別で的確になります。

コード例

// app/layout.tsx — 全ページ共通の骨格export default function RootLayout({ children }: { children: React.ReactNode }) {  return (    <html lang="ja">      <body>        <header>共通ヘッダー</header>
        {/* ここに各ページ(page.tsx)がはめ込まれる */}        <main>{children}</main>
        <footer>共通フッター</footer>      </body>    </html>  );}

このlearnアプリのヘッダー(テーマ切替付き)とフッターも、まさにlayout.tsxに書かれています。

ステップ 1 / 2

※ カリキュラムの内容はAIが生成しており、誤りが含まれる場合があります。正確な情報は公式ドキュメント等でご確認ください。