React でのイベントの処理は、インタラクティブで動的なアプリケーションの作成を可能にする基本的なスキルです。このガイドでは、イベント ハンドラーの追加、合成イベントの理解、イベント ハンドラーへの引数の受け渡し、カスタム イベントの作成、イベント委任の使用など、React でのイベント処理の基本を説明します。
React では、JSX にイベント ハンドラーを直接追加できます。イベント ハンドラーは、ボタンのクリックやフォームの送信など、特定のイベントが発生したときに呼び出される関数です。
イベントハンドラーの追加例:
import React from 'react'; const handleClick = () => { alert('Button clicked!'); }; const App = () => { return ( <div> <button onClick={handleClick}>Click Me</button> </div> ); }; export default App;
この例では、ボタンがクリックされるたびに handleClick 関数が呼び出されます。 JSX の onClick 属性は、イベント ハンドラーを指定するために使用されます。
React は合成イベントと呼ばれるシステムを使用してイベントを処理します。合成イベントは、ブラウザーのネイティブ イベント システムのクロスブラウザー ラッパーです。これにより、さまざまなブラウザ間でイベントが一貫して動作することが保証されます。
合成イベントの例:
import React from 'react'; const handleInputChange = (event) => { console.log('Input value:', event.target.value); }; const App = () => { return ( <div> <input type="text" onChange={handleInputChange} /> </div> ); }; export default App;
この例では、handleInputChange 関数は、入力フィールドの値が変更されるたびにその値を記録します。イベント パラメーターは、すべてのブラウザーにわたって一貫したイベント プロパティを提供する合成イベントです。
場合によっては、追加の引数をイベント ハンドラーに渡す必要があります。これは、アロー関数またはバインド メソッドを使用して実行できます。
アロー関数を使用した例:
import React from 'react'; const handleClick = (message) => { alert(message); }; const App = () => { return ( <div> <button onClick={() => handleClick('Button clicked!')}>Click Me</button> </div> ); }; export default App;
bind メソッドを使用した例:
import React from 'react'; const handleClick = (message) => { alert(message); }; const App = () => { return ( <div> <button onClick={handleClick.bind(null, 'Button clicked!')}>Click Me</button> </div> ); }; export default App;
どちらのメソッドでも、追加の引数を handleClick 関数に渡すことができます。
React の合成イベントは一般的なユースケースのほとんどをカバーしていますが、より複雑なインタラクションにはカスタム イベントの作成が必要になる場合があります。カスタム イベントは、CustomEvent コンストラクターとdispatchEvent メソッドを使用して作成およびディスパッチできます。
カスタム イベントの作成とディスパッチの例:
import React, { useEffect, useRef } from 'react'; const CustomEventComponent = () => { const buttonRef = useRef(null); useEffect(() => { const handleCustomEvent = (event) => { alert(event.detail.message); }; const button = buttonRef.current; button.addEventListener('customEvent', handleCustomEvent); return () => { button.removeEventListener('customEvent', handleCustomEvent); }; }, []); const handleClick = () => { const customEvent = new CustomEvent('customEvent', { detail: { message: 'Custom event triggered!' }, }); buttonRef.current.dispatchEvent(customEvent); }; return ( <button ref={buttonRef} onClick={handleClick}> Trigger Custom Event </button> ); }; export default CustomEventComponent;
この例では、customEvent という名前のカスタム イベントが作成され、ボタンがクリックされたときに送出されます。イベント ハンドラーはカスタム イベントをリッスンし、イベントの詳細メッセージを含むアラートを表示します。
イベント委任は、単一のイベント リスナーを使用して複数の要素のイベントを管理する手法です。これは、特にリストやテーブルでイベントを効率的に管理するのに役立ちます。
イベント委任の例:
import React from 'react'; const handleClick = (event) => { if (event.target.tagName === 'BUTTON') { alert(`Button ${event.target.textContent} clicked!`); } }; const App = () => { return ( <div onClick={handleClick}> <button>1</button> <button>2</button> <button>3</button> </div> ); }; export default App;
この例では、div 要素の単一のイベント ハンドラーがすべてのボタンのクリック イベントを管理します。イベント ハンドラーは、event.target をチェックしてどのボタンがクリックされたかを判断し、それに応じてアラートを表示します。
React でのイベントの処理は、インタラクティブなアプリケーションを作成するために不可欠です。イベント ハンドラーの追加、合成イベントの使用、イベント ハンドラーへの引数の受け渡し、カスタム イベントの作成、イベント委任の活用方法を理解することで、より動的で効率的な React アプリケーションを構築できます。経験を積むにつれて、これらのテクニックが自然になり、複雑なインタラクションを簡単に作成できるようになります。
以上がジュニアレベル: React でのイベントの処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。