ホームページ  >  記事  >  ウェブフロントエンド  >  これに反応イベントをバインドするいくつかの方法

これに反応イベントをバインドするいくつかの方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-17 09:47:331821ブラウズ

今回は、これに反応イベントをバインドするいくつかの方法を紹介します。反応イベントをこれにバインドするための注意事項は何ですか?実際のケースを見てみましょう。

React コンポーネントでは、各メソッドのコンテキストはコンポーネントのインスタンスを指します。つまり、これは現在のコンポーネントに自動的にバインドされ、React はこの参照もキャッシュして CPU とメモリを最大化します。 es6 クラスまたは純粋な関数を使用する場合、この自動バインディングは存在しなくなり、このバインディングを手動で実装する必要があります

React イベント バインディングは DOM イベント バインディングに似ていますが、違いは次のとおりです:

1.React イベントには名前が付けられます。キャメルケースで、DOM イベント名は小文字です

2. jsx を通じて、string の代わりに関数をイベント ハンドラーとして渡します。

3. React イベントは false を返してデフォルトのイベントを防ぐことはできません。明示的にPreventDefault() を呼び出す必要があります。

以下の例:

<a href="#" onclick="console.log(&#39;The link was clicked.&#39;); 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>
  );
 }
}

アロー関数バインディングアロー関数はSugar関数の構文だけではありません' とすると、この

関数スコープ

を定義する 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 に注意してください。もっと面白いこと 他の関連記事は中国のウェブサイトにあります!

推奨読書:

JSはQRコードを生成します

JSはWeChat IDのランダムな切り替えを実装します

String.prototype.format 文字列スプライシングの使用方法


以上がこれに反応イベントをバインドするいくつかの方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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