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

推薦する

Javascript 共通高階関数の詳細

目次1. 一般的な高階関数1.1、フィルター1.2、地図1.3、減らすHigher Order fu...

コーディングスキルを向上させるためのJavaScriptのヒント

目次1. 一意の値をフィルタリングする2. 短絡評価2.1 シナリオ例3. ブール変換4. 文字列を...

Web コンテンツ ページを作成するための 9 つの実用的なヒント

コンテンツ1. 読者に留まる理由を与える。ウェブページを面白く魅力的なものにしましょう。しかし、まず...

VMware Workstation 14 Pro は CentOS 7.0 をインストールします

VMware Workstation 14 ProにCentOS 7.0をインストールする具体的な方...

スライダーを作成するためのネイティブ js ドラッグ アンド ドロップ機能のサンプル コード

ドラッグ アンド ドロップはフロントエンドでよく使われる機能であり、多くのエフェクトで js のドラ...

組み込み移植 docker エラー問題 (概要)

長い移植と情報検索の期間を経て、組み込みDockerの問題を解決することができました。インターネット...

Nginx でバージョン番号を隠す方法

Nginx はバージョン番号を非表示にする実稼働環境では、セキュリティ上の脆弱性の漏洩を避けるために...

HTML でスクロールバーを使用する際のヒントを共有する

今日、牛南ニュースリリースシステムについて学んでいたとき、牛南先生はスクロールバーに関するいくつかの...

docker に php-fpm サービス/拡張機能/構成をインストールする詳細なチュートリアル

macにbrewを使ってphp56をインストールしたところ、 opensslがバージョン1.1だった...

VMware12 に CentOS8 をインストールする方法 (VM 仮想マシンに CentOS8 をインストールするチュートリアル)

数日前に CentOS8 がリリースされました。8 の最初のバージョンですが、今日は VM12 に ...

ウェブページのグリッドデザインを考える

<br />元のアドレス: http://andymao.com/andy/post/8...

ショッピングカートの計算を実現する js メソッド

この記事の例では、ショッピングカートの計算を実装するためのjsの具体的なコードを参考までに共有してい...

CSS フレキシブルレイアウト FLEX、メディアクエリ、モバイルクリックイベントの実装

フレックスレイアウト定義: Flexレイアウトの要素は、 Flex 、または略して「コンテナー」と呼...

ウェブ上の模倣と盗作に関する議論

2005年に業界に入ってから数か月後、労働者の日休みの期間中、1か月以上毎日12時まで残業をしました...