stopPropagation
4454 ワード
stopPropagationが存在するのは、イベントbundingを防止するためです.
イベントbublingという言葉はよく知られていませんが、簡単な例で理解してみましょう.
もちろん、モードを持つ親divラベルをクリックすると、それを閉じるように整理できますが、このように作成すると、モード自体をクリックするだけで閉じることになります.
これは、サブラベルで発生したイベントが親に伝播し、イベントbubling現象が発生するためです.
次にstopPropagationを適用する例を見てみましょう.
イベントbublingという言葉はよく知られていませんが、簡単な例で理解してみましょう.
<div onClick={closeModal}>
<div className="modalContainer">
<button onClick={closeModal}>CLOSE</button>
<h1>TITLE</h1>
<p>CONTENTS</p>
...
</div>
</div>
モデル構成部品とモデル外部をクリックしてモデルを閉じる例を実装したとします.もちろん、モードを持つ親divラベルをクリックすると、それを閉じるように整理できますが、このように作成すると、モード自体をクリックするだけで閉じることになります.
これは、サブラベルで発生したイベントが親に伝播し、イベントbubling現象が発生するためです.
次にstopPropagationを適用する例を見てみましょう.
const stopPropagation = (e) => {
e.stopPropagation();
};
<div onClick={closeModal}>
<div className="modalContainer" onClick={stopPropagation}>
<button onClick={closeModal}>CLOSE</button>
<h1>TITLE</h1>
<p>CONTENTS</p>
...
</div>
</div>
イベントを伝播を必要としないタグに掛け、e.stopPropagation()
を呼び出すことによって、イベント伝播を回避することができ、モデル要素のdim処理を簡略化することができる.Reference
この問題について(stopPropagation), 我々は、より多くの情報をここで見つけました https://velog.io/@bung1438/stopPropagationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol