Reactでのイベントバインディングの実装は3つの方法を指しています

Reactでのイベントバインディングの実装は3つの方法を指しています

1. 矢印関数

1. 矢印関数自体はこれをバインドしないという事実を利用します。

2. render() メソッド内のこれは、setState() を取得できるコンポーネント インスタンスです。

クラスAppはReact.Componentを拡張します。
    状態 = {
        カウント: 0
    }
    // イベントハンドラ onIncrement() {
        console.log('イベント処理関数内の this:', this)
        this.setState({
            カウント:この状態の数+1
        })
    }
    // レンダリング render() {
        戻る (
            <div>
                <h1>{this.state.count}</h1>
              //矢印関数内のこれは外部環境を指しています。ここでは: render() メソッド <button onClick={()=>this.onIncrement()}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */
            </div>
        )
    }
}

2. Function.proptype.bind()

1. ES5のbindメソッドを使用して、イベントハンドラー内のこれをコンポーネントインスタンスにバインドします。

クラスAppはReact.Componentを拡張します。
    コンストラクタ() {
        素晴らしい()
        // データ this.state = {
            カウント: 0
        }
        // 最初のメソッド.bind は this ポインタを変更し、関数を返し、関数を実行しません this.onIncrement = this.onIncrement.bind(this)
    }
     // イベントハンドラ onIncrement() {
         console.log('イベント処理関数内の this:', this)
         this.setState({
             カウント:この状態の数+1
         })
     }
    // レンダリング render() {
        戻る (
            <div>
                <h1>{this.state.count}</h1>
                <button onClick={this.onIncrement}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */
            </div>
        )
    }
}

3.クラスインスタンスメソッド

1. クラスインスタンスメソッドを矢印関数の形で使う

2. この構文は実験的ですが、babelが存在するため直接使用できます。

クラスAppはReact.Componentを拡張します。
    コンストラクタ() {
        素晴らしい()
        // データ this.state = {
            カウント: 0
        }
    }
      // イベントハンドラ onIncrement=()=> {
        console.log('イベント処理関数内の this:', this)
        this.setState({
            カウント:この状態の数+1
        })
    }
    // レンダリング render() {
        戻る (
            <div>
                <h1>{this.state.count}</h1>
                <button onClick={this.onIncrement}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */
            </div>
        )
    }
}

これで、React で this をイベント バインディングする 3 つのメソッドの実装に関するこの記事は終了です。React で this をイベント バインディングする関連コンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Reactイベントバインディングの詳細な説明
  • Reactでこれをイベントにバインドする4つの方法の詳細な説明
  • React学習におけるイベントバインディングのいくつかの手法の比較
  • React イベントバインディングの詳細

<<:  mysql8.0.11をインストールしてrootパスワードを変更し、navicat for mysqlに接続するアイデアの詳細な説明

>>:  Linux 環境で crontab コマンドを使用して、スケジュールされた定期的な実行タスクを設定します (PHP 実行コードを含む)

推薦する

MySQL レプリケーションの原理と実際のアプリケーションの詳細な説明

この記事では、例を使用して、MySQL レプリケーションの原理と実際のアプリケーションについて説明し...

Docker クロスホストネットワークの実装 (手動)

1. Macvlan の紹介Macvlan が登場する前は、イーサネット カードに複数の IP ア...

Linux のスケジュールタスク Crontab コマンドの使用に関する詳細な説明と概要

crontab コマンドは、Unix および Linux で定期的な実行命令を設定するために使用され...

純粋なCSS3で実装されたネオンライト効果

達成される効果は次のとおりです。 マウスがボタン内に移動すると、ネオンライトのような効果が生成され、...

Windows 10 Home EditionにDockerをインストールする方法を教えます

Redisの本やSpring Cloud Alibabaの本を執筆した際に、一部の分散コンポーネント...

JS 実用的なオブジェクト指向スネークゲームの例

目次考える1. 貪欲な蛇の効果画像2. スネークの分析2.1 ゲーム開始機能2.2 運動機能2.2....

VMWare を使用して Windows 上で Linux 環境を構築する手順 (画像とテキスト)

Mac を返却して以来、元のラップトップは使用されていません。このラップトップの構成は非常に良好で...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

Dockerコンテナの状態変換の実装

Dockerコンテナの状態遷移図2度目の実戦 [root@localhost ~]# docker ...

Reactはいくつかの方法でパラメータを渡します

目次親コンポーネントと子コンポーネント間でパラメータを渡すルーティングパラメータステータスの改善コン...

CSS ファイルをインポートする 4 つの方法 (インライン、インライン、外部、インポート) の詳細な説明

CSS インポート方法 - インラインスタイルタグ属性を通じて、CSSのキーと値のペアがタグに直接書...

Jenkins+tomcat の自動ホットデプロイメント/再起動と発生した問題の解決策 (推奨)

1. 背景同社のプロジェクトは、これまでは手動で Maven でパッケージ化し、サーバーにアップロ...

Tik Tok サブスクリプション ボタンのアニメーション効果を実現する CSS

少し前にTik Tokを見ていて、フォローするときのボタンアニメーションがとても美しいと思ったのと、...

ドラッグフォトウォールを実現するネイティブJS

この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...

Centos7 のインストールと Mysql5.7 の設定

ステップ1: MySQL YUMソースを取得するMySQLの公式サイトにアクセスして、RPMパッケー...