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

推薦する

CentOS 7 で Apache (httpd) サービスをインストールおよびアンインストールする詳細な手順

アンインストールまず、次のコマンドを使用して、httpd サービスがインストールされているかどうか、...

React Hooksを使用する際のよくある落とし穴

React Hooks は React 16.8 で導入された新しい機能で、クラスを使用せずに状態や...

静的ウェブサイトをRSSに変換するツール

<br /> この記事は allwebdesignresources.com から Ra...

MySQL 5.7.19 インストールディレクトリに my.ini ファイルを作成する方法

前回の記事では、MySQL 5.7.19 無償インストール版 (64 ビット) の設定方法についての...

VMware Esxi のルート パスワードを忘れた後に正常に取得する方法

CentOS6 インストール ディスク (任意のバージョン) を準備するか、別の pnux インスト...

MySQL マルチテーブル結合クエリの詳細な説明

目次複数テーブル結合クエリ内部結合左結合右結合サブクエリ要約する複数テーブル結合クエリテーブル間の接...

フィボナッチ数列のJavaScript出力を実装する方法

目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...

VSCode の Remote-SSH を使用して Linux に接続し、リモート開発を行う

Remote-SSHをインストールして設定するまず VSCode を開き、拡張機能を見つけて、Rem...

phpmyadmin を使用して MySQL 権限を設定する方法

目次ステップ 1: root ユーザーとしてログインします。ステップ 2: 新しいデータ テーブルを...

TomcatはXMLを解析し、リフレクションを通じてオブジェクトを作成します。

次のサンプル コードでは、Tomcat が XML を解析し、リフレクションを通じてオブジェクトを作...

ソースコードから、Vue2がデータとメソッドを直接取得できる理由がわかる

目次1. 例: これはデータとメソッドを直接取得できます2. 環境を準備し、ソースコードをデバッグし...

MySQL接続がハングする理由の詳細な説明

目次1. 背景建築問題現象2. 分析プロセス接続プール不安に陥る雲を晴らして光を見よう3. 解決策I...

Dockerコンテナ終了エラーコードの手順

実行後、一部の Docker コンテナが終了することがあります。原因を調べるには、Docker コン...

Vueで背景色と透明度を設定する方法

背景色と透明度の設定上記のように、最初の画像の場合は、灰色の背景と左上隅に白い「カバー」という文字を...

MySQL データを誤って削除した場合の簡単な解決策 (MySQL フラッシュバック ツール)

概要Binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...