Reactのイベントハンドリングを理解しよう
プロ太先生!!Reactのアプリケーションを開発する上で、ユーザーからの入力やアクションに対応することが重要だと聞きました!!具体的にはどんなふうに対応すればいいんですか?
ReactではDOM Eventsと同様のイベントシステムを提供しており、様々なイベントタイプを活用してユーザーの操作を検知し、それに応じた処理を行うことができます。まずは、ボタンがクリックされた時の処理を見てみましょう。こんなふうに書けます。
const Example = () => {
const clickHandler = () => {
alert('ボタンがクリックされました。');
}
const clickHandler2 = () => {
console.log('ボタンがクリックされました。');
}
return (
<>
<button onClick={clickHandler}>クリックしてね</button>
<button onClick={clickHandler2}>クリックしてね</button>
</>
);
};
おぉ!これなら、JSの勉強したのでなんとなく分かりそうです!
2つのボタンがあって、それぞれのボタンのクリック時にalert
とconsole.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>
);
};
ここでは、o
nChange
、onBlur
、onFocus
といったイベントを使って、ユーザーの入力操作を検知しています。また、e.target.value
を使うことで、入力値を取得できますね。
なるほど、Reactのイベントハンドリングの基本はこんな感じなんですね。具体的な使い方がよくわかりました!ありがとうございました!!
まとめ
Reactのイベントハンドリングでは、ユーザーの操作に応じた様々な反応を作り出すことができます。この投稿では、ボタンのクリックや入力フィールドのonChange、onBlur、onFocusイベント、ホバーイベントなど、基本的なイベントハンドリングの使い方を解説しました。イベントハンドラを設定することで、ユーザーの操作に対応する柔軟なインタラクションが実現できます。基本を押さえ、より豊かなReactアプリを作っていきましょう!