EventのtargetとcurrentTargetの違い
EventオブジェクトのtargetとcurrentTargetについて、いつも忘れてしまうのでまとめ。
サンプルコード
テキストをクリックしたときの挙動の違いは以下の通り。
function Button({ children }) {
const handleClick = (e) => {
console.log(e.target); // <strong>テキスト</strong>
console.log(e.currentTarget); // <button><strong>テキスト</strong></button>
};
return (
<button onClick={handleClick}>
<strong>{children}</strong>
</button>
);
}
まとめ
- Eventのtarget: イベントが実際に発生した要素への参照を格納している
- EventのcurrentTarget: イベントハンドラが登録されている要素への参照を格納している