ホームページ  >  記事  >  ウェブフロントエンド  >  イベントをこれにバインドする 4 つの方法の詳細な説明は、react_javascript スキルで説明されています。

イベントをこれにバインドする 4 つの方法の詳細な説明は、react_javascript スキルで説明されています。

小云云
小云云オリジナル
2018-03-12 09:15:221722ブラウズ

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(&#39;del&#39;)
 }
 render() {
  return (
   <p className="home">
    <span onClick={::this.del}></span>
   </p>
  );
 }
}

関連する推奨事項:

php での this と self の簡単な紹介

4種類のJSこの値モード

HTMLタグでの使い方

以上がイベントをこれにバインドする 4 つの方法の詳細な説明は、react_javascript スキルで説明されています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。