React入門第7回~開発でよく使うイベントタイプ~

Reactのイベントハンドリングを理解しよう

OZ
OZ

プロ太先生!!Reactのアプリケーションを開発する上で、ユーザーからの入力やアクションに対応することが重要だと聞きました!!具体的にはどんなふうに対応すればいいんですか?

プロ太
プロ太

ReactではDOM Eventsと同様のイベントシステムを提供しており、様々なイベントタイプを活用してユーザーの操作を検知し、それに応じた処理を行うことができます。まずは、ボタンがクリックされた時の処理を見てみましょう。こんなふうに書けます。

const Example = () => {
  const clickHandler = () => {
    alert('ボタンがクリックされました。');
  }
  
  const clickHandler2 = () => {
    console.log('ボタンがクリックされました。');
  }

  return (
    <>
      <button onClick={clickHandler}>クリックしてね</button>
      <button onClick={clickHandler2}>クリックしてね</button>
    </>
  );
};

おぉ!これなら、JSの勉強したのでなんとなく分かりそうです!
2つのボタンがあって、それぞれのボタンのクリック時にalertconsole.logが呼び出されているみたいですね!!こんな感じであってますか?

そうです!OZくん!このコードでは、ボタンのクリックイベントにハンドラを定義しています!

clickHandler関数は、ボタンがクリックされたときにalertを表示するものです。
一方で、clickHandler2関数は、クリック時にconsole.logでメッセージを出力するものになっています。

そして、これらのイベントハンドラの関数をボタンのonClickプロパティに直接指定することで、ボタンがクリックされたときに適切な処理が実行されるようになっています。

プロ太
プロ太

Reactでは、このようにイベントハンドラの関数を直接指定することで、ユーザーの操作に応じた処理を行うことができます。これが、Reactのイベントハンドリングの基本的な使い方になります。では次に、入力フィールドに関するイベントハンドリングを見ていきましょう。

const InputEvents = () => {
  return (
    <div>
      <h3>コンソールを確認してください。</h3>
      <label>
        入力値のイベント:
        <input
          type="text"
          onChange={() => console.log("onChange検知")}
          onBlur={() => console.log("onBlur検知")}
          onFocus={() => console.log("onFocus検知")}
        />
      </label>
      <div>
        <label>
          入力値を取得:
          <input type="text" onChange={(e) => console.log(e.target.value)} />
        </label>
      </div>
      <div
        className="hover-event"
        onMouseEnter={() => console.log("カーソルが入ってきました。")}
        onMouseLeave={() => console.log("カーソルが出ていきました。")}
      >
        ホバーしてね!
      </div>
    </div>
  );
};

ここでは、onChangeonBluronFocusといったイベントを使って、ユーザーの入力操作を検知しています。また、e.target.valueを使うことで、入力値を取得できますね。

なるほど、Reactのイベントハンドリングの基本はこんな感じなんですね。具体的な使い方がよくわかりました!ありがとうございました!!

まとめ

Reactのイベントハンドリングでは、ユーザーの操作に応じた様々な反応を作り出すことができます。この投稿では、ボタンのクリックや入力フィールドのonChange、onBlur、onFocusイベント、ホバーイベントなど、基本的なイベントハンドリングの使い方を解説しました。イベントハンドラを設定することで、ユーザーの操作に対応する柔軟なインタラクションが実現できます。基本を押さえ、より豊かなReactアプリを作っていきましょう!