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

Reactの再利用可能なモーダル完全ガイド!初心者でもわかるモーダルコンポーネント実装例

再利用可能なモーダルコンポーネントの実装例
再利用可能なモーダルコンポーネントの実装例

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

生徒

「Reactでよく見るポップアップ画面って、自分でも作れるんですか?」

先生

「作れますよ。それがモーダルコンポーネントです。」

生徒

「何回も使う画面でも、同じものを使い回せますか?」

先生

「再利用できる形で作るのがReactらしい書き方です。」

1. モーダルコンポーネントとは何か

1. モーダルコンポーネントとは何か
1. モーダルコンポーネントとは何か

モーダルとは、画面の上に重なって表示される小さなウィンドウのことです。 確認メッセージや注意書きなどでよく使われます。

現実でたとえると、作業中に突然渡される確認用の紙のような存在です。 内容を確認しないと、元の作業に戻れません。

2. なぜモーダルを再利用可能にするのか

2. なぜモーダルを再利用可能にするのか
2. なぜモーダルを再利用可能にするのか

モーダルは多くの場面で使われます。 削除確認、注意表示、説明表示など、用途はさまざまです。

毎回新しく作ると、見た目や動きがバラバラになります。 一つの共通モーダルを作っておくと、管理がとても楽になります。

3. 最もシンプルなモーダルコンポーネント

3. 最もシンプルなモーダルコンポーネント
3. 最もシンプルなモーダルコンポーネント

まずは、表示と非表示を切り替えられるだけのシンプルなモーダルを作ります。 難しい処理は入れず、構造を理解することが目的です。


function Modal(props) {
  if (!props.isOpen) {
    return null;
  }

  return (
    <div>
      <div>
        {props.children}
        <button onClick={props.onClose}>閉じる</button>
      </div>
    </div>
  );
}

export default Modal;
モーダルが開いているときだけ、画面に内容が表示されます。

4. モーダルを開閉する仕組み

4. モーダルを開閉する仕組み
4. モーダルを開閉する仕組み

モーダルは、表示するかどうかを状態で管理します。 状態とは、今の画面の状況を覚えておくための仕組みです。

スイッチのオンとオフを想像すると理解しやすいです。 オンなら表示、オフなら非表示になります。


import React, { useState } from "react";
import Modal from "./Modal";

function App() {
  const [open, setOpen] = useState(false);

  return (
    <div>
      <button onClick={() => setOpen(true)}>モーダルを開く</button>
      <Modal isOpen={open} onClose={() => setOpen(false)}>
        <p>これはモーダルの中身です</p>
      </Modal>
    </div>
  );
}

export default App;
ボタンを押すとモーダルが表示され、閉じると消えます。

5. childrenを使って中身を自由に変える

5. childrenを使って中身を自由に変える
5. childrenを使って中身を自由に変える

childrenを使うことで、モーダルの中身を自由に差し替えられます。 外枠は同じで、中の文章だけを変えられるのがポイントです。

これは、同じ封筒に違う手紙を入れるようなイメージです。


<Modal isOpen={open} onClose={() => setOpen(false)}>
  <h2>確認</h2>
  <p>本当に削除しますか?</p>
</Modal>
タイトルと文章が変わったモーダルが表示されます。

6. ボタン操作をモーダル内に追加する

6. ボタン操作をモーダル内に追加する
6. ボタン操作をモーダル内に追加する

モーダルの中には、複数のボタンを置くこともできます。 確認やキャンセルなど、よくある操作を想定します。


<Modal isOpen={open} onClose={() => setOpen(false)}>
  <p>処理を実行しますか?</p>
  <button>はい</button>
  <button onClick={() => setOpen(false)}>いいえ</button>
</Modal>
モーダル内に複数の操作ボタンが表示されます。

7. 再利用可能なモーダルのメリット

7. 再利用可能なモーダルのメリット
7. 再利用可能なモーダルのメリット

一つのモーダルを作っておくと、どの画面でも同じ仕組みを使えます。 見た目や動きが統一され、利用者も迷いにくくなります。

初心者でも、共通部品として考えることでReactの考え方が自然に身につきます。

8. モーダル実装で意識したいポイント

8. モーダル実装で意識したいポイント
8. モーダル実装で意識したいポイント

モーダルは必要なときだけ表示することが大切です。 常に表示されると、画面の邪魔になります。

再利用を前提に作ることで、コードが整理され、後から見ても理解しやすくなります。

カテゴリの一覧へ
新着記事
New1
React
Reactの宣言的UIとは?初心者でもわかる命令型との違いとメリットを解説!
New2
React
仮想DOM(Virtual DOM)とは?仕組みとReactでの役割を解説!初心者でもわかるReactの仮想DOM
New3
React
Reactの再利用可能なモーダル完全ガイド!初心者でもわかるモーダルコンポーネント実装例
New4
React
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
人気記事
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
ViteでReact開発環境を構築する手順を完全ガイド!初心者でもできるReactの環境構築
No.4
Java&Spring記事人気No4
React
ReactのProps設計を完全マスター!再利用性を高めるコンポーネント設計の考え方
No.5
Java&Spring記事人気No5
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.6
Java&Spring記事人気No6
React
Reactの条件分岐の使い方を完全ガイド!初心者でもわかるReactの条件分岐
No.7
Java&Spring記事人気No7
React
ReactとTypeScriptの相性とは?型安全な開発のメリット
No.8
Java&Spring記事人気No8
Next.js
Next.jsとは?Reactとの関係を初心者向けにやさしく解説|Next.jsの基本概念と特徴