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

Next.js App Routerでlayout.tsxを使う方法を完全ガイド!初心者でもわかるUIの共有

Next.js App Routerでlayout.tsxを使う方法(UIの共有)
Next.js App Routerでlayout.tsxを使う方法(UIの共有)

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

生徒

「Next.jsのApp Routerって、毎回同じヘッダーを書く必要があるんですか?」

先生

「同じUIを何度も書かなくて大丈夫です。layout.tsxを使えば共有できます。」

生徒

「layout.tsxって、どんな役割なんですか?」

先生

「画面の共通部分をまとめるための仕組みです。順番に見ていきましょう。」

1. Next.js App Routerとは何か

1. Next.js App Routerとは何か
1. Next.js App Routerとは何か

Next.jsのApp Routerとは、画面の構成をフォルダ単位で管理する新しい仕組みです。 パソコン初心者の方は、フォルダを「引き出し」、ファイルを「書類」と考えてください。 App Routerでは、引き出しの場所によって、表示される画面が自動的に決まります。 この仕組みにより、ページごとの管理がとても簡単になります。

2. layout.tsxの役割をイメージしよう

2. layout.tsxの役割をイメージしよう
2. layout.tsxの役割をイメージしよう

layout.tsxは、すべてのページで共通して使うUIをまとめるファイルです。 たとえば、学校の校舎で考えると、廊下や階段はどの教室でも共通ですよね。 layout.tsxは、その廊下や階段のような存在です。 ヘッダー、フッター、メニューなどを一度書くだけで、複数のページに反映されます。

3. 最小構成のlayout.tsxを書いてみよう

3. 最小構成のlayout.tsxを書いてみよう
3. 最小構成のlayout.tsxを書いてみよう

まずは一番シンプルなlayout.tsxを見てみましょう。 このファイルは、appフォルダの直下に置きます。


export default function RootLayout({ children }) {
  return (
    <html lang="ja">
      <body>
        {children}
      </body>
    </html>
  );
}
(各ページの内容が、bodyの中に表示されます)

4. ヘッダーとフッターを共有する例

4. ヘッダーとフッターを共有する例
4. ヘッダーとフッターを共有する例

次は、ヘッダーとフッターを追加した例です。 どのページを開いても、同じ見た目になります。


export default function RootLayout({ children }) {
  return (
    <html lang="ja">
      <body>
        <header>
          <h1>サンプルサイト</h1>
        </header>

        <main>
          {children}
        </main>

        <footer>
          <p>© 2026 Sample</p>
        </footer>
      </body>
    </html>
  );
}
(画面の上にタイトル、下にフッターが常に表示されます)

5. フォルダごとにlayout.tsxを分ける考え方

5. フォルダごとにlayout.tsxを分ける考え方
5. フォルダごとにlayout.tsxを分ける考え方

App Routerでは、フォルダごとにlayout.tsxを作れます。 これは、建物の中でフロアごとに内装が違うイメージです。 たとえば、管理画面だけ別のデザインにしたい場合に便利です。


export default function AdminLayout({ children }) {
  return (
    <div>
      <nav>管理メニュー</nav>
      <section>{children}</section>
    </div>
  );
}
(管理画面だけ専用メニューが表示されます)

6. childrenとは何を意味しているのか

6. childrenとは何を意味しているのか
6. childrenとは何を意味しているのか

childrenとは、layout.tsxの中に差し込まれるページ本体のことです。 難しく聞こえますが、「あとから入る中身」と覚えてください。 空のお弁当箱に、おかずを入れるようなイメージです。 各ページの内容が、自動的にchildrenとして渡されます。

7. page.tsxとlayout.tsxの関係

7. page.tsxとlayout.tsxの関係
7. page.tsxとlayout.tsxの関係

page.tsxは、実際の画面内容を書くファイルです。 layout.tsxは、その外側を包む枠の役割を持っています。 封筒と手紙で考えると、layout.tsxが封筒、page.tsxが手紙です。 この関係を理解すると、画面構成が一気にわかりやすくなります。


export default function Page() {
  return <p>これはトップページです</p>;
}
(共通レイアウトの中に文章が表示されます)

8. layout.tsxを使うと何が楽になるのか

8. layout.tsxを使うと何が楽になるのか
8. layout.tsxを使うと何が楽になるのか

layout.tsxを使う最大のメリットは、修正が一か所で済むことです。 もしヘッダーの文字を変えたい場合、layout.tsxだけ直せば大丈夫です。 何十ページも同じ修正をする必要がなくなり、ミスも減ります。 初心者の方ほど、この便利さを早めに知っておくと安心です。

カテゴリの一覧へ
新着記事
New1
React
React Context APIのレンダリング問題を解決!初心者でもわかるパフォーマンス最適化ガイド
New2
React
ReactのFetch APIでエラー処理を理解しよう!初心者でも安心のやさしい解説
New3
React
Reactでフォーカスイベントを制御する方法!onFocusとonBlurを初心者向けに解説
New4
Next.js
Next.js Pages RouterでのSSG(getStaticProps)完全解説!初心者でもわかる静的サイト生成の仕組み
人気記事
No.1
Java&Spring記事人気No1
React
Reactの子コンポーネントから親コンポーネントへデータを渡す方法を徹底解説!初心者にもわかるReactのイベントとデータの流れ
No.2
Java&Spring記事人気No2
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.3
Java&Spring記事人気No3
React
ReactのContext APIとReduxの違いを初心者向けに徹底比較!どちらを使うべきか完全解説
No.4
Java&Spring記事人気No4
React
React開発におすすめのVSCode拡張機能まとめ!初心者でもすぐ使える便利ツール紹介
No.5
Java&Spring記事人気No5
React
React(TypeScript)で学ぶStateの型推論と型指定の違い!型安全なState管理を初心者向けにやさしく解説
No.6
Java&Spring記事人気No6
React
ReactのState管理ベストプラクティス!初心者でもわかる再レンダリング最適化の考え方
No.7
Java&Spring記事人気No7
React
ReactのPresentational Componentを完全ガイド!初心者でもわかるStateを持たないコンポーネントの特徴
No.8
Java&Spring記事人気No8
Next.js
Next.jsのServer ComponentsとClient Componentsの通信方法を完全解説!props渡しの基本と使い方