カテゴリ: React 更新日: 2025/12/12

Reactのイベント処理を完全ガイド!初心者でもわかるonClickの使い方とボタンの操作方法

コンポーネントでイベント処理を行う方法(onClickなど)
コンポーネントでイベント処理を行う方法(onClickなど)

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

生徒

「Reactでボタンをクリックしたときに、何か動作させるにはどうすればいいですか?」

先生

「それにはイベント処理という仕組みを使います。ReactではonClickという属性でボタンのクリックに反応できますよ。」

生徒

「イベント処理って何か難しそうです…」

先生

「大丈夫です!実際の例を見ながら、Reactでイベント処理を行う方法をやさしく解説していきましょう。」

1. Reactでイベント処理を行うには?

1. Reactでイベント処理を行うには?
1. Reactでイベント処理を行うには?

Reactでは、ユーザーの操作に反応するために「イベント処理(イベントハンドラ)」を使います。
たとえばボタンがクリックされたときにメッセージを変更したり、入力された内容を画面に表示したりすることができます。

初心者の方に分かりやすく言えば、イベント処理とは「スイッチを押したら電気がつく」ような仕組みです。
ボタンや入力欄などに対して「この操作があったら、これを実行する」と指示を与えるのがReactのイベント処理です。

2. onClickイベントの基本

2. onClickイベントの基本
2. onClickイベントの基本

最も基本的なイベント処理は、onClickを使ったボタンのクリックイベントです。onClickとは、ボタンがクリックされたときに実行される処理を登録するための属性です。


import React, { useState } from "react";

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

  return (
    <div>
      <h1>{message}</h1>
      <button onClick={() => setMessage("ボタンがクリックされました!")}>
        クリックしてみよう
      </button>
    </div>
  );
}

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

このように、onClick属性の中でsetMessageという関数を呼び出すことで、表示されるメッセージを動的に変更しています。

3. イベントハンドラを関数で分けて記述する方法

3. イベントハンドラを関数で分けて記述する方法
3. イベントハンドラを関数で分けて記述する方法

処理が長くなると、onClickの中にすべて書くのは読みにくくなります。
その場合は、関数を別で用意して分けて書くとスッキリします。


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

  const handleClick = () => {
    setCount(count + 1);
  };

  return (
    <div>
      <p>クリック回数:{count}</p>
      <button onClick={handleClick}>カウントアップ</button>
    </div>
  );
}
(画面に「クリック回数:0」と表示され、ボタンを押すたびに数字が増えていきます)

このように関数を分けておくことで、処理が複雑になってもコードが見やすくなります。

4. 他のイベントも使ってみよう

4. 他のイベントも使ってみよう
4. 他のイベントも使ってみよう

ReactではonClickの他にもさまざまなイベントがあります。たとえば以下のようなものです。

  • onChange:入力欄で文字が変わったとき
  • onMouseOver:マウスカーソルを乗せたとき
  • onKeyDown:キーボードのキーを押したとき
  • onSubmit:フォームを送信したとき

たとえばonChangeを使って、入力した名前をリアルタイムで画面に表示することもできます。


function App() {
  const [name, setName] = useState("");

  return (
    <div>
      <input onChange={(e) => setName(e.target.value)} />
      <p>あなたの名前:{name}</p>
    </div>
  );
}
(入力欄に文字を入力すると「あなたの名前:○○」とリアルタイムで表示されます)

5. 初心者がつまずきやすいポイント

5. 初心者がつまずきやすいポイント
5. 初心者がつまずきやすいポイント

Reactのイベント処理で初心者がよく間違えるポイントを紹介します。

  • onClick={() => 関数名()} のように「関数を呼び出す形」にしないと実行されない
  • setStateuseStateの変更関数)を使うのを忘れて画面が更新されない
  • HTMLと同じようにonclickと小文字で書いてしまう(ReactではonClickとキャメルケース)

特にonClickの大小文字は、初心者がよくやるミスです。Reactでは大文字小文字がとても重要なので注意しましょう。

6. イベントオブジェクトを使う方法

6. イベントオブジェクトを使う方法
6. イベントオブジェクトを使う方法

イベントが発生したときの情報を受け取るには、イベントオブジェクト(eなど)を使います。
たとえば、クリックされたボタンの情報を取得したり、入力された値を読み取ったりできます。


function handleClick(e) {
  console.log(e.target); // クリックされた要素
}

このように関数の引数にeを渡すことで、詳細な操作情報を扱えるようになります。

まとめ

まとめ
まとめ

Reactのイベント処理は、ユーザーの操作に応じて画面を動的に変化させるための重要な仕組みです。この記事で紹介されていたように、onClickイベントを使ってボタンをクリックしたときの動作を定義したり、onChangeイベントで入力内容をリアルタイムに表示したりすることで、インタラクティブで使いやすいUIを作成できます。ReactのイベントはHTMLと違いキャメルケースで記述する点や、処理を関数として分けて書くとコードが読みやすくなる点など、初心者の方が意識しておくべきポイントも多くあります。特にuseStateと組み合わせることで、クリックによるカウントの更新やメッセージの切り替えなど、動きのある表現が簡単に実現できる点はReactの大きな魅力です。

さらに、イベントオブジェクトを活用することでクリックされた場所や入力された値を取得し、より細かな挙動を実現できます。イベント処理の仕組みは一見複雑に感じられますが、実際には「特定の操作があったらこの処理を行う」というシンプルな考え方に基づいています。Reactアプリケーションではユーザーとのやり取りが非常に重要になるため、イベントの流れを理解し、目的に応じた処理を実装できるようになることが大切です。

また、初心者がつまずきやすいポイントとして「関数をすぐ実行してしまう書き方」「setStateを使い忘れる」「属性名の誤記」などがありました。これらは丁寧に記述すれば確実に防げるミスであり、Reactのルールに慣れることで自然と解決していきます。イベント処理は実際に手を動かしてコードを書いていくことで理解が深まるため、今回のサンプルを参考にしながら、自分自身のアプリでもクリックや入力を組み合わせた動作を試してみることをおすすめします。

Reactのイベント処理を身につけることは、その後のフォーム入力、アニメーション、ユーザー操作に合わせたインタラクションの実装など、さまざまな場面で役立ちます。基礎的なクリック処理だけでなく、他のイベントにも触れていくことで、より実践的なUI構築ができるようになり、React開発の幅がぐんと広がります。

サンプルプログラムの振り返り

実際のイベント処理を整理するために、以下のようなシンプルなサンプルコードを示します。複数のイベントを活用することで、Reactの動きがより理解しやすくなります。


import React, { useState } from "react";

function EventDemo() {
  const [text, setText] = useState("ようこそ!");
  const [hover, setHover] = useState(false);

  const handleClick = () => {
    setText("クリックされました!");
  };

  return (
    <div className="card p-3">
      <h2>{text}</h2>
      <button onClick={handleClick}>クリックボタン</button>

      <div
        className="mt-3"
        onMouseOver={() => setHover(true)}
        onMouseOut={() => setHover(false)}
      >
        {hover ? "カーソルが乗っています" : "カーソルを乗せてください"}
      </div>

      <input
        className="mt-3"
        onChange={(e) => setText(e.target.value)}
        placeholder="入力するとメッセージが変わります"
      />
    </div>
  );
}

export default EventDemo;

このサンプルではクリック・ホバー・入力の三つのイベントを扱っており、Reactにおけるイベント処理の全体像をつかむのに非常に役立つ構成になっています。特にonMouseOverやonMouseOutを使った動作は、画面に動きを与える手段として実務でもよく使われるため、覚えておくと便利です。複数のイベントを組み合わせることで、ユーザーの操作に応じた豊かなインタラクションを実現できることが理解しやすい例となっています。

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

生徒「イベント処理って難しそうに見えて、実際にはクリックされたら動作するだけなんですね!」

先生「その通りです。Reactではクリック、入力、カーソル操作などあらゆる動作に反応できるのでとても便利なんですよ。」

生徒「関数を分けて書くとすごく読みやすくなるのも勉強になりました!」

先生「コードが複雑になるほど、イベントごとに関数を整理しておくと管理しやすくなります。」

生徒「useStateと組み合わせると画面の更新まで簡単にできるのが驚きでした!」

先生「イベント処理と状態管理はReactの中心なので、しっかり理解すると開発がどんどん楽になりますよ。」

生徒「次はもっと複雑なイベントにも挑戦してみたいです!」

先生「いいですね。今回の基礎がしっかり身についていれば、応用もきっとスムーズに進みますよ。」

カテゴリの一覧へ
新着記事
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とTypeScriptの環境構築をやさしく解説!Viteとtsconfigの設定も丁寧に紹介
No.3
Java&Spring記事人気No3
React
Reactのイベントハンドリングのアンチパターンまとめ!初心者でもわかる注意点
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を送る仕組みを初心者向けに紹介