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 実行コードを含む)

推薦する

Dockerコンテナのネットワーク管理とネットワーク分離の実装

1. Dockerネットワーク管理1. Dockerコンテナ方式1) Dockerが外部ネットワーク...

JSの矢印関数におけるこのポイントの詳細な説明

矢印関数は ES6 の新機能です。独自の this はありません。その this ポイントは外部のコ...

CSS で美しい時計アニメーション効果を実装するためのサンプルコード

仕事を探しています!!!事前準備:まず、このアニメーションは、以前のローディングアニメーションとクー...

シンプルなjQuery + CSSを使用してカスタムタグタイトルツールチップを作成します

導入シンプルな jQuery + CSS を使用して、ブラウザのデフォルトの動作を置き換えるカスタム...

JS の toFixed() メソッドの丸め精度の問題の詳細な説明

目次落とし穴充填方法何の穴ですか?要約する落とし穴最近、仕事で商品の割引価格を計算すると、いつも1セ...

SQL実行ステップの詳細な分析

SQL実行ステップの詳細な分析まず、ステートメントが実行される順序を見てみましょう。 (8)選択する...

Vue ページ印刷で自動ページングを実装する 2 つの方法

この記事では、ページ印刷の自動ページングを実現するためのVueの具体的なコードを例として紹介します。...

mysql-8.0.19-winx64 をインストールしてログインするための初心者向けチュートリアル (初心者必読)

目次1. インストールパッケージ(64ビット)をダウンロードする2. MySQLデータベースをインス...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

MySQL データ型における DECIMAL の使用法の詳細な説明

MySQL データ型における DECIMAL の使用法の詳細な説明MySQL のデータ型には、INT...

mysql5.7 でユーザーの初期パスワードを変更する方法

ユーザーが初めて MySQL データベースをインストールするとき、初期のルート パスワードを変更する...

CSS が複数のクラスに一致する方法のサンプルコード

CSSは複数のクラスにマッチする次の HTML タグ li、クラスはオープン スタイルです。私の要件...

MySQL無料インストールバージョンの設定チュートリアル

この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...

MySQL 8.0.19 winx64 インストールチュートリアルと Windows 10 での初期パスワードの変更

この記事では、参考までにMySQL 8.0.19 winx64のインストールチュートリアルを紹介しま...

Ubuntu 18.04 (物理マシン) で OpenWRT 開発環境を構成する方法

1. 仮想マシン(物理マシン)をインストールする仮想マシンまたは物理マシンにインストールできます。 ...