カテゴリ: Next.js 更新日: 2026/02/19

Next.jsのLayoutをルート単位で切り替える方法を完全解説!初心者でもわかるNext.jsレイアウト入門

Next.jsのLayoutをルート単位で切り替える方法
Next.jsのLayoutをルート単位で切り替える方法

先生と生徒の会話形式で理解しよう

生徒

「Next.jsって、ページごとに見た目を変えることはできるんですか?」

先生

「できます。Next.jsにはLayoutという仕組みがあり、ルートごとに切り替えられます。」

生徒

「ルートって、フォルダのことですか?」

先生

「その通りです。フォルダ構成がそのまま画面の構成につながるのがNext.jsの特徴です。」

1. Next.jsのLayoutとは何かを超かんたんに理解しよう

1. Next.jsのLayoutとは何かを超かんたんに理解しよう
1. Next.jsのLayoutとは何かを超かんたんに理解しよう

Next.jsのLayoutとは、すべてのページで共通して使う「外枠」のようなものです。 パソコンで例えると、机の上に毎回同じデスクマットを敷いて、その上にノートや本を置くイメージです。

ヘッダーやフッター、メニューなど、毎回同じ表示にしたい部分をLayoutにまとめることで、 ページごとに同じコードを書かなくて済みます。

2. ルートとは何か?フォルダとURLの関係

2. ルートとは何か?フォルダとURLの関係
2. ルートとは何か?フォルダとURLの関係

Next.jsでは、フォルダの構成がそのままURLになります。 これを「ルーティング」と呼びますが、難しく考えなくて大丈夫です。

たとえば、appフォルダの中にblogフォルダを作ると、 それは「/blog」というページのまとまりになります。

3. ルートごとにLayoutを切り替える基本構造

3. ルートごとにLayoutを切り替える基本構造
3. ルートごとにLayoutを切り替える基本構造

Next.jsでは、フォルダの中にlayout.jsxを置くことで、 そのフォルダ配下のページすべてに同じLayoutが適用されます。


export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <header>共通ヘッダー</header>
        {children}
        <footer>共通フッター</footer>
      </body>
    </html>
  );
}
(すべてのページで、上に「共通ヘッダー」、下に「共通フッター」が表示されます)

4. 複数ルートでLayoutを分ける具体例

4. 複数ルートでLayoutを分ける具体例
4. 複数ルートでLayoutを分ける具体例

たとえば、一般向けページと管理画面で、見た目を完全に変えたい場合があります。 そんなときは、フォルダごとにLayoutを作ります。


export default function AdminLayout({ children }) {
  return (
    <div>
      <nav>管理画面メニュー</nav>
      <main>{children}</main>
    </div>
  );
}
(/admin配下のページだけ、管理画面専用のメニューが表示されます)

5. Layoutが自動で切り替わる仕組み

5. Layoutが自動で切り替わる仕組み
5. Layoutが自動で切り替わる仕組み

Next.jsでは、ページを表示するときに、 「どのフォルダの中にあるか」を見てLayoutを決めます。

プログラムで条件分岐を書く必要はなく、 フォルダにlayout.jsxを置くだけで自動的に切り替わるのが特徴です。

6. 子Layoutと親Layoutの関係

6. 子Layoutと親Layoutの関係
6. 子Layoutと親Layoutの関係

Layoutは重ねて使うこともできます。 親フォルダのLayoutの中に、子フォルダのLayoutが入る形です。


export default function BlogLayout({ children }) {
  return (
    <section>
      <h1>ブログ専用レイアウト</h1>
      {children}
    </section>
  );
}
(全体Layoutの中に、ブログ専用の見出しが追加されます)

7. Templateとの違いをやさしく説明

7. Templateとの違いをやさしく説明
7. Templateとの違いをやさしく説明

Layoutは画面遷移しても状態が保たれますが、 Templateはページごとに作り直されます。

机の例で言うと、Layoutは「片付けない机」、 Templateは「毎回リセットされる机」です。

8. 初心者がつまずきやすい注意点

8. 初心者がつまずきやすい注意点
8. 初心者がつまずきやすい注意点

layout.jsxは必ずchildrenを受け取る必要があります。 これがないと、ページの中身が表示されません。

また、HTMLタグを二重に書かないように注意すると、 エラーを防ぎやすくなります。

カテゴリの一覧へ
新着記事
New1
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
New2
React
PropsとStateの違いを徹底解説!使い分けのポイントまとめ
New3
React
Reactのフォーム入力を再利用しよう!初心者でもわかるフィールドコンポーネント化の考え方
New4
React
Reactでできること一覧!初心者でもわかるWebアプリ・スマホアプリ・PWAの活用方法
人気記事
No.1
Java&Spring記事人気No1
React
Reactでキーボードイベントを活用する方法!onKeyDown, onKeyUp, onKeyPressを初心者向けに解説
No.2
Java&Spring記事人気No2
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.3
Java&Spring記事人気No3
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
No.4
Java&Spring記事人気No4
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.5
Java&Spring記事人気No5
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.6
Java&Spring記事人気No6
Next.js
Next.js Server Componentsのメリット・デメリットを完全解説!初心者でもわかるNext.jsの基本
No.7
Java&Spring記事人気No7
React
ReactでAxiosローディング状態を管理する方法を完全ガイド!初心者でもわかる非同期通信の基本
No.8
Java&Spring記事人気No8
React
Reactのカードコンポーネントを汎用的に設計する方法!初心者でもわかる再利用の考え方