カテゴリ: React 更新日: 2026/02/19

Reactでイベントハンドラを関数として定義する方法を初心者向けに解説

イベントハンドラを関数として定義する方法
イベントハンドラを関数として定義する方法

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

生徒

「Reactでボタンを押したときに何か処理をしたいのですが、直接書くのではなく関数として定義する方法はありますか?」

先生

「もちろんです。イベントハンドラは関数として定義することで、再利用しやすく、コードが見やすくなります。」

生徒

「どうやって関数を作るんですか?」

先生

「それでは、具体的にプログラムの書き方を順を追って見ていきましょう。」

1. 関数としてイベントハンドラを定義する基本例

1. 関数としてイベントハンドラを定義する基本例
1. 関数としてイベントハンドラを定義する基本例

Reactでは、ボタンやフォームのイベントに直接処理を書くこともできますが、関数として定義すると複数の場所で再利用できたり、コードが整理されます。


import React, { useState } from "react";

function App() {
  const [message, setMessage] = useState("こんにちは!");

  // イベントハンドラを関数として定義
  function handleClick() {
    setMessage("ボタンがクリックされました!");
  }

  return (
    <div>
      <h1>{message}</h1>
      <button onClick={handleClick}>クリックしてみよう</button>
    </div>
  );
}

export default App;
(画面に「こんにちは!」と表示され、ボタンを押すと「ボタンがクリックされました!」に変わります)

この例では、handleClickという関数を定義して、それをボタンのonClick属性に指定しています。こうすることで、ボタンをクリックしたときに関数が呼び出され、状態が更新されます。

2. 引数を受け取る関数として定義する例

2. 引数を受け取る関数として定義する例
2. 引数を受け取る関数として定義する例

関数としてイベントハンドラを定義するとき、ユーザーが入力した値やクリック情報を引数として受け取ることもできます。


import React, { useState } from "react";

function App() {
  const [text, setText] = useState("");

  function handleInputChange(event) {
    setText(event.target.value);
  }

  return (
    <div>
      <input
        type="text"
        placeholder="文字を入力してください"
        value={text}
        onChange={handleInputChange}
      />
      <p>入力内容: {text}</p>
    </div>
  );
}

export default App;
(入力フォームに文字を入力すると、下に入力内容が表示され、状態がリアルタイムで更新されます)

handleInputChange関数では、eventオブジェクトを引数として受け取り、event.target.valueで入力された文字を取得しています。こうすることで、どの要素で発生したイベントかや入力値を簡単に扱うことができます。

3. 関数として定義するメリット

3. 関数として定義するメリット
3. 関数として定義するメリット
  • コードが整理され、可読性が向上する
  • 同じ処理を複数の場所で再利用できる
  • 引数やイベントオブジェクトを柔軟に扱える
  • 条件分岐や複雑な処理も関数内で管理できる

直接onClick={() => {...}}のように書くこともできますが、関数として定義すると、あとで修正や追加が必要になった場合も簡単に変更できます。特にフォーム入力や複数ボタンがある場合に便利です。

4. 実践的なポイント

4. 実践的なポイント
4. 実践的なポイント

イベントハンドラを関数として定義するときは、関数名をわかりやすくすることが大切です。例えばhandleClickhandleInputChangeのように、どの操作に対応する関数か名前で判断できるようにすると、後でコードを見直すときに迷わず理解できます。

また、必要に応じてevent.preventDefault()を使うと、フォームの送信を止めたり、リンクの遷移を防ぐこともできます。関数として定義しておけば、このような処理も関数内にまとめて書けるので管理が簡単です。

まとめ

まとめ
まとめ

Reactでイベントハンドラを関数として定義する考え方の振り返り

この記事では、Reactにおけるイベントハンドラを関数として定義する方法について、基本から実践的なポイントまで段階的に解説してきました。 Reactでは、ボタンのクリックや入力フォームの変更など、ユーザーの操作に応じて処理を実行する場面が非常に多くあります。 そのような処理を直接JSXの中に書くこともできますが、関数として定義することで、コード全体の見通しが良くなり、保守性や再利用性が大きく向上します。

特に初心者のうちは、「どこに処理を書けばいいのか」「どのタイミングで実行されるのか」が分かりにくく感じることがあります。 しかし、イベントハンドラを関数として切り出すことで、「この関数はこの操作のためのもの」と役割が明確になり、Reactの構造を理解しやすくなります。 これは、Reactアプリケーションを長く使い続けるうえで非常に重要な考え方です。

関数定義と状態管理を組み合わせる重要性

Reactでは、画面の表示内容を直接変更するのではなく、useStateなどを使って状態を管理し、その状態が変化することで画面が再描画されます。 イベントハンドラを関数として定義することで、その中に状態更新の処理をまとめて書くことができ、 「どの操作で、どの状態が、どのように変わるのか」を整理して考えられるようになります。

また、イベントオブジェクトを引数として受け取ることで、入力された値やクリックされた要素の情報を柔軟に扱える点も大きなメリットです。 フォーム入力やチェックボックス、複数ボタンの制御など、実践的なReact開発では欠かせない場面が多く、 イベントハンドラを関数として定義するスキルは、Reactの基礎力を支える重要な要素と言えます。

サンプルプログラムで最終確認

ここで、イベントハンドラを関数として定義し、状態管理と組み合わせたシンプルなサンプルプログラムを確認してみましょう。 ボタン操作によって状態が変わり、画面表示が更新される基本構造です。


import React, { useState } from "react";

function HandlerSample() {
  const [count, setCount] = useState(0);

  function handleIncrement() {
    setCount(count + 1);
  }

  return (
    <div>
      <h1>カウント: {count}</h1>
      <button onClick={handleIncrement}>
        カウントを増やす
      </button>
    </div>
  );
}

export default HandlerSample;

この例では、handleIncrementというイベントハンドラを関数として定義し、 ボタンのonClickに指定しています。 ボタンがクリックされるたびに関数が呼び出され、状態が更新され、その結果が画面に反映されます。 Reactではこのように、「イベント → 関数 → 状態更新 → 再描画」という流れが基本となります。

イベントハンドラを関数として定義するメリットの整理

イベントハンドラを関数として定義することで、コードの可読性が向上し、処理の意図が分かりやすくなります。 また、同じ処理を複数の場所で使い回したり、後から条件分岐や追加処理を行ったりする際にも柔軟に対応できます。 Reactではコンポーネントが増えるほど処理も複雑になりやすいため、 最初の段階から関数としてイベントハンドラを整理する習慣を身につけることが大切です。

先生と生徒の振り返り会話

生徒

「イベントハンドラを関数として定義すると、 どの処理がどの操作に対応しているのか分かりやすくなりました。」

先生

「それが一番のポイントですね。 Reactでは処理の役割をはっきりさせることで、コード全体が読みやすくなります。」

生徒

「直接onClickの中に書くよりも、 後から修正しやすそうだと感じました。」

先生

「その通りです。関数として定義しておけば、 機能追加や修正にも柔軟に対応できます。」

生徒

「これからはイベント処理はできるだけ関数にまとめて、 Reactのコードを書いていこうと思います。」

先生

「とても良い考え方ですね。 それがReactを理解するうえでの大切な一歩になりますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Reactでイベントハンドラを関数として定義する方法とは?

Reactでは、イベントハンドラを関数として定義することで、コードの再利用性が高まり、可読性も向上します。関数を別に用意してからonClickなどに指定するのが基本的な方法です。
カテゴリの一覧へ
新着記事
New1
React
Reactコンポーネントの再利用と分割を完全マスター!初心者でもわかるコンポーネント設計
New2
React
ReactでAxiosインターセプターの使い方を完全ガイド!初心者でもわかるリクエストとレスポンスの処理方法
New3
React
JSXの書き方!初心者でもわかるReactタグと属性の基本ルール解説
New4
React
ReactとDockerを使った開発環境構築の基本を徹底解説!初心者でもわかるReactとDockerの連携方法
人気記事
No.1
Java&Spring記事人気No1
React
ReactでonChangeイベントを使ってフォーム入力値を管理する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
No.3
Java&Spring記事人気No3
React
ReactとTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.4
Java&Spring記事人気No4
React
Reactのカスタムフックの作り方を完全ガイド!再利用可能なロジックを切り出す仕組み
No.5
Java&Spring記事人気No5
React
ReactでFetch APIのローディング状態を管理する方法|初心者にもわかる解説
No.6
Java&Spring記事人気No6
React
create-react-appでReactプロジェクトを作成する手順を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
React
ReactのuseStateとuseEffectでよくあるエラーと解決方法ガイド!初心者でもわかるReactフック
No.8
Java&Spring記事人気No8
React
Reactでファイルアップロードを実装する方法を解説!Fetch APIで画像やPDFを送る仕組みを初心者向けに紹介