TIL17. React Event handling
Event handling
「レスポンス」(React)領域でイベントを処理する方法は、次のとおりです.
やり方に似ている.
いくつかの文法の違いがあります. Reactでは、イベント名にCamelCaseを使用する必要があります. Reactでは、イベントハンドラ(イベントハンドラ)がJSX形式で関数をマークする.
HTMLとReactの違いを例に挙げてみましょう
イベントハンドラの接続にはJSXタグ{}が使用されます.
イベントのデフォルトの動作をブロックする方法
HTMLではflaseを返します.イベントをブロックしたデフォルトの動作を返します.
Reactは、
Event Binding
イベントの最も重要な部分はbindingです.
これは、クラス内のイベント値ではなくトップレベルのウィンドウから値を取得できるためです.
結果はundefindeです.
test 2ボタンはthis binding(矢印関数)を使用してこの値を示します.
対応するclass this値が結果として表示されます.
「レスポンス」(React)領域でイベントを処理する方法は、次のとおりです.
やり方に似ている.
いくつかの文法の違いがあります.
//HTML
<button onclick="helloWorld()">
hellow World
</button>
//React
<button onClick={helloWorld}>
hellow World
</button>
上記の例では、イベント名をonClickなどのcamelCaseに設定します.イベントハンドラの接続にはJSXタグ{}が使用されます.
イベントのデフォルトの動作をブロックする方法
HTMLではflaseを返します.イベントをブロックしたデフォルトの動作を返します.
Reactは、
preventDefault
を使用してイベントの基本動作をブロックする....
<a href="#" handleClick="alert('clicked'); return false">
Click me
</a>
...
...
handleClick(e) {
e.preventDefault();
alert('clicked');
}
...
e.stopPropagation()、e.preventDefault()差異e.preventDefault()
は、一意の動作を中断することができる.e.stopPropagation()
は、上流のエリメントへの活動の伝播を停止する.Event Binding
イベントの最も重要な部分はbindingです.
binding
最も重要な理由はbindingが指定されていない場合、これは、クラス内のイベント値ではなくトップレベルのウィンドウから値を取得できるためです.
render() {
return (
// 1. test1 - undefined
// 2. test2 - event log
<div>
<button onClick={ function() {console.log(this)}}>test1</button>
<br />
<button onClick={() => console.log(this)}>test2</button>
</div>
);
}
上記の例では、test 1ボタンはバインドされず、コンソールにこの値が表示されます.結果はundefindeです.
test 2ボタンはthis binding(矢印関数)を使用してこの値を示します.
対応するclass this値が結果として表示されます.
Reference
この問題について(TIL17. React Event handling), 我々は、より多くの情報をここで見つけました https://velog.io/@corete/TIL17.-React-Event-handlingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol