この記事では、React でこれをイベント バインディングする 4 つの方法を主に紹介しますので、参考にしてください。
React コンポーネントでは、各メソッドのコンテキストはコンポーネントのインスタンスを指します。つまり、これは現在のコンポーネントに自動的にバインドされ、React はこの参照もキャッシュして CPU とメモリを最大化します。 es6 クラスまたは純粋な関数を使用する場合、この自動バインディングは存在しなくなり、このバインディングを手動で実装する必要があります
React イベント バインディングは DOM イベント バインディングに似ていますが、違いは次のとおりです:
1.React イベントには名前が付けられます。キャメルケースで、DOM イベント名は小文字です
2. jsx を通じて、文字列の代わりに関数をイベント ハンドラーとして渡します。
3. React イベントは false を返してデフォルトのイベントを防ぐことはできません。明示的にPreventDefault() を呼び出す必要があります。
以下の例:
<a href="#" onclick="console.log('The link was clicked.'); return false"> Click me </a> class ActionLink extends React.Component { constructor(props) { super(props); } handleClick(e) { e.preventDefault(); console.log('The link was clicked.'); } render() { return ( <a href="#" onClick={this.handleClick.bind(this)}>Click Me...</a> ); } }
ps: React コンポーネント クラスのメソッドは、デフォルトではこれをコンポーネント インスタンスにバインドしません。手動でバインドする必要があります。
以下にいくつかのバインディングメソッドを示します:
bindメソッド
直接バインディングはbind(this)ですが、これが引き起こす問題は、バインドがレンダリングされるたびに再バインドされることです。
コンストラクター内でのバインドこれをコンストラクター内でバインドする利点は、一度バインドするだけで済み、レンダリングされるたびに関数を再利用することもできることです
。class Home extends React.Component { constructor(props) { super(props); this.state = { }; } del(){ console.log('del') } render() { return ( <p className="home"> <span onClick={this.del.bind(this)}></span> </p> ); } }
::パラメータを渡すことはできませんパラメータを渡さない場合は、二重コロンを使用することもできます
class Home extends React.Component { constructor(props) { super(props); this.state = { }; this.del=this.del.bind(this) } del(){ console.log('del') } render() { return ( <p className="home"> <span onClick={this.del}></span> </p> ); } }
アロー関数バインディング アロー関数は、関数の「構文の糖衣」であるだけではなく、また、この関数のスコープを定義する this も自動的にバインドされます。これ以上バインドする必要がないからです。
class Home extends React.Component { constructor(props) { super(props); this.state = { }; } del(){ console.log('del') } render() { return ( <p className="home"> <span onClick={::this.del}></span> </p> ); } }
上記は、すべての人のために私がコンパイルしたものです。将来、すべての人に役立つことを願っています。
関連記事:
vueで実装した画像をデータベースにアップロードしてページに表示する機能の例vue.jsルーティング使用後の失敗問題を解決完璧に解析する方法jsのデータ以上がReact でイベントを this にバインドする 4 つの方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。