カテゴリ: React 更新日: 2026/03/06

Reactの共通レイアウト完全ガイド!初心者でもわかるレイアウトコンポーネント再利用術

共通レイアウトコンポーネントを作成して再利用する方法
共通レイアウトコンポーネントを作成して再利用する方法

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

生徒

「Reactでページを増やしたら、毎回同じヘッダーを書くのが大変です…」

先生

「それは共通レイアウトコンポーネントを使うと解決できます。」

生徒

「共通レイアウトって、どんなものなんですか?」

先生

「同じ見た目や構造を、何度も使い回せるようにした部品のことです。」

1. Reactにおける共通レイアウトとは

1. Reactにおける共通レイアウトとは
1. Reactにおける共通レイアウトとは

共通レイアウトとは、どのページでも同じ形で表示される部分をまとめたものです。 たとえば、画面の上にあるヘッダーや、下にあるフッターが代表例です。

パソコンを触ったことがない人でも、学校のプリントを想像するとわかりやすいです。 表紙や名前を書く場所は同じで、中身だけが変わります。 Reactでも同じ考え方で、外枠を共通化します。

2. なぜレイアウトをコンポーネント化するのか

2. なぜレイアウトをコンポーネント化するのか
2. なぜレイアウトをコンポーネント化するのか

同じレイアウトを毎回書くと、修正がとても大変になります。 たとえば、ヘッダーの文字を変えたい場合、すべてのページを直す必要があります。

共通レイアウトをコンポーネントにしておくと、一か所直すだけで全ページに反映されます。 これは、Reactの再利用という強みを最大限に活かす方法です。

3. 一番シンプルなレイアウトコンポーネント

3. 一番シンプルなレイアウトコンポーネント
3. 一番シンプルなレイアウトコンポーネント

まずは、ヘッダーと本文を持つシンプルなレイアウトを作ってみます。 レイアウトは、子要素を受け取る仕組みを使うのが基本です。


function Layout(props) {
  return (
    <div>
      <header>
        <h1>共通ヘッダー</h1>
      </header>
      <main>
        {props.children}
      </main>
    </div>
  );
}

export default Layout;
画面の上に「共通ヘッダー」が表示され、その下に中身が入ります。

4. childrenとは何か

4. childrenとは何か
4. childrenとは何か

childrenとは、コンポーネントの中に書かれた内容を受け取るための仕組みです。 難しく聞こえますが、「中身を差し替えられる箱」と考えると理解しやすいです。

段ボール箱に入れる物を変えるように、レイアウトの中身だけを自由に変えられます。


import Layout from "./Layout";

function PageA() {
  return (
    <Layout>
      <p>ページAの内容です</p>
    </Layout>
  );
}

export default PageA;
共通ヘッダーの下に「ページAの内容です」と表示されます。

5. 複数ページでレイアウトを再利用する

5. 複数ページでレイアウトを再利用する
5. 複数ページでレイアウトを再利用する

同じLayoutコンポーネントは、別のページでも使えます。 中身だけを書き換えることで、見た目の統一感を保てます。


import Layout from "./Layout";

function PageB() {
  return (
    <Layout>
      <p>こちらはページBです</p>
    </Layout>
  );
}

export default PageB;
ヘッダーは同じで、本文だけがページBの内容に変わります。

6. フッターを追加した共通レイアウト

6. フッターを追加した共通レイアウト
6. フッターを追加した共通レイアウト

レイアウトには、ヘッダーだけでなくフッターも含めることが多いです。 よくある画面構成を一つにまとめておくと便利です。


function Layout(props) {
  return (
    <div>
      <header>
        <h1>共通ヘッダー</h1>
      </header>
      <main>
        {props.children}
      </main>
      <footer>
        <small>共通フッター</small>
      </footer>
    </div>
  );
}

export default Layout;
上にヘッダー、下にフッターがある画面になります。

7. レイアウトを分けて考えるメリット

7. レイアウトを分けて考えるメリット
7. レイアウトを分けて考えるメリット

レイアウトと中身を分けることで、役割がはっきりします。 レイアウトは見た目の枠組み、ページは内容だけに集中できます。

これは、ノートのテンプレートと文章を分けて考えるのと同じです。 初心者でも、コードを読むときに迷いにくくなります。

8. Appコンポーネントでの使い方

8. Appコンポーネントでの使い方
8. Appコンポーネントでの使い方

最後に、Appコンポーネントでページを表示してみます。 共通レイアウトを使っていることが一目でわかります。


import PageA from "./PageA";

function App() {
  return <PageA />;
}

export default App;
共通レイアウトを使ったページがそのまま画面に表示されます。
カテゴリの一覧へ
新着記事
New1
React
Reactの共通レイアウト完全ガイド!初心者でもわかるレイアウトコンポーネント再利用術
New2
Next.js
Next.jsの特徴を一覧で理解しよう!初心者でもわかるNext.js(App Router時代の強化点)
New3
Next.js
Next.jsがSEOに強い理由を完全解説!表示速度とメタデータ管理を初心者向けにやさしく説明
New4
Next.js
Next.jsのapiフォルダとは?Route Handlersとserver関数の役割を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.2
Java&Spring記事人気No2
React
Reactとは?初心者でもわかるReact.jsの基本概念と特徴をやさしく解説
No.3
Java&Spring記事人気No3
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.4
Java&Spring記事人気No4
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.5
Java&Spring記事人気No5
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.6
Java&Spring記事人気No6
React
ReactのProps設計を完全マスター!再利用性を高めるコンポーネント設計の考え方
No.7
Java&Spring記事人気No7
Next.js
Next.jsとは?Reactとの関係を初心者向けにやさしく解説|Next.jsの基本概念と特徴
No.8
Java&Spring記事人気No8
React
Reactのライフサイクルでよくあるバグとデバッグ方法を初心者向けに解説