ホームページ > 記事 > ウェブフロントエンド > イベントをこれにバインドする 4 つの方法の詳細な説明は、react_javascript スキルで説明されています。
React コンポーネントでは、各メソッドのコンテキストはコンポーネントのインスタンスを指します。つまり、これは現在のコンポーネントに自動的にバインドされ、React はこの参照もキャッシュして CPU とメモリを最大化します。 es6 クラスまたは純粋な関数を使用する場合、この自動バインディングは存在しなくなり、これのバインディングを手動で実装する必要があります。
React イベント バインディングは DOM イベント バインディングに似ていますが、次のような違いがあります:
1. React イベントはキャメルケースで名前が付けられ、DOM イベントの名前は小文字です
2. jsx を介して関数をイベント ハンドラーとして渡します。文字列の代わりに。
3. React イベントは false を返してデフォルトのイベントを防ぐことはできません。明示的にPreventDefault() を呼び出す必要があります。
以下の例:
4b9fb64e28bfa25ce78ce203c03210ee Click me 5db79b134e9f6b82c0b36e0489ee08ed class ActionLink extends React.Component { constructor(props) { super(props); } handleClick(e) { e.preventDefault(); console.log('The link was clicked.'); } render() { return ( ce9b621fb6ec54951e7c0b38768a414bClick Me...5db79b134e9f6b82c0b36e0489ee08ed ); } }
ps: React コンポーネント クラスのメソッドは、デフォルトではこれをコンポーネント インスタンスにバインドしません。手動でバインドする必要があります。
以下にいくつかのバインディングメソッドを示します:
bindメソッド
直接バインディングはbind(this)ですが、これが引き起こす問題は、バインドがレンダリングされるたびに再バインドされることです。
コンストラクター内でのバインドこれをコンストラクター内でバインドする利点は、関数をレンダリングするたびに再バインドする必要がなく、再度バインドする必要がないことです。
class Home extends React.Component { constructor(props) { super(props); this.state = { }; } del(){ console.log('del') } render() { return ( 09d51344e61201747f3f0f261639e806 c157f1b0f1442cd3850bd9da57d4d18e54bdf357c58b8a65c66d7c19c8e4d114 94b3e26ee717c64999d7867364b1b4a3 ); } }::パラメータを渡すことはできません
パラメータを渡さない場合は、二重コロンを使用することもできます
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> ); } }関連する推奨事項:
php での this と self の簡単な紹介
以上がイベントをこれにバインドする 4 つの方法の詳細な説明は、react_javascript スキルで説明されています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。