React は、仮想 DOM に基づいて 合成イベント レイヤー を実装します。定義したイベント ハンドラーは、W3C 標準に完全に準拠しており、IE 標準との互換性の問題はありません。 。ネイティブ ブラウザ イベントと同じインターフェイスを備えており、イベント バブリング メカニズムもサポートしています。すべてのイベントは自動的に最外層にバインドされます。
合成イベントの実装メカニズム
Reactは、イベントハンドラーを実際のノードに直接バインドしません。代わりに、すべてのイベントは構造の最外層にバインドされ、統合されたイベント リスナーが使用され、すべてのコンポーネント内にイベント リスニングおよび処理関数を保存するためのマッピングが維持されます。イベントが発生すると、まずこのイベント リスナーによって処理され、次にイベント リスナーはマッピング内で実際のイベント処理関数を見つけてそれを呼び出します。これにより、イベントの処理とリサイクルのメカニズムが簡素化され、効率が大幅に向上します。
React で DOM ネイティブ イベントを使用する場合、コンポーネントがアンロードされるときに手動で削除する必要があります。そうしないとメモリ リークが発生する可能性があります。ただし、合成イベント システムを使用する場合は、React の内部でこれらが適切に処理されているため、これは必要ありません。あなたにとっての問題。
合成イベントはメモリ リークの問題を解決できますが、場合によっては、これを達成するためにネイティブ時間を使用する必要があります。合成イベントとネイティブ イベントの混合については話さないでください。ただし、これは e.target の判断によって回避することもできます。実際、React の合成イベント システムは、ネイティブ DOM イベント システムのサブセットにすぎません。
以上がReact イベント システムの知識の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。