Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

Die Implementierung der Ereignisbindung in React verweist auf drei Methoden

1. Pfeilfunktion

1. Nutzen Sie die Tatsache, dass die Pfeilfunktion selbst dies nicht bindet;

2. Dies ist in der render()-Methode die Komponenteninstanz, die setState() abrufen kann.

Klasse App erweitert React.Component {
    Zustand = {
        Anzahl: 0
    }
    // Ereignishandler onIncrement() {
        console.log('dies in der Ereignisbehandlungsfunktion:', dies)
        dies.setState({
            Anzahl:dieser.Zustand.Anzahl+1
        })
    }
    // Rendern render() {
        zurückkehren (
            <div>
                <h1>{dieser.Zustand.Anzahl}</h1>
              //Dies in der Pfeilfunktion zeigt auf die externe Umgebung, hier ist: render()-Methode <button onClick={()=>this.onIncrement()}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */}
            </div>
        )
    }
}

2. Funktion.proptype.bind()

1. Verwenden Sie die Bind-Methode in ES5, um dies im Event-Handler an die Komponenteninstanz zu binden

Klasse App erweitert React.Component {
    Konstruktor() {
        super()
        // Daten dieser.Zustand = {
            Anzahl: 0
        }
        // Die erste Methode.bind ändert den this-Zeiger, gibt eine Funktion zurück und führt die Funktion this.onIncrement = this.onIncrement.bind(this) nicht aus.
    }
     // Ereignishandler onIncrement() {
         console.log('dies in der Ereignisbehandlungsfunktion:', dies)
         dies.setState({
             Anzahl:dieser.Zustand.Anzahl+1
         })
     }
    // Rendern render() {
        zurückkehren (
            <div>
                <h1>{dieser.Zustand.Anzahl}</h1>
                <button onClick={this.onIncrement}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */}
            </div>
        )
    }
}

3.Klasseninstanzmethoden

1. Verwenden der Klasseninstanzmethode in Form einer Pfeilfunktion

2. Diese Syntax ist experimentell, kann aber aufgrund der Existenz von Babel direkt verwendet werden

Klasse App erweitert React.Component {
    Konstruktor() {
        super()
        // Daten dieser.Zustand = {
            Anzahl: 0
        }
    }
      // Ereignishandler onIncrement=()=> {
        console.log('dies in der Ereignisbehandlungsfunktion:', dies)
        dies.setState({
            Anzahl:dieser.Zustand.Anzahl+1
        })
    }
    // Rendern render() {
        zurückkehren (
            <div>
                <h1>{dieser.Zustand.Anzahl}</h1>
                <button onClick={this.onIncrement}>+1</button>
                {/* <button onClick={this.onIncrement()}>+1</button> */}
            </div>
        )
    }
}

Damit ist dieser Artikel über die Implementierung von drei Methoden der Ereignisbindung in React abgeschlossen. Weitere relevante Inhalte zur Ereignisbindung in React finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Erklärung der React-Ereignisbindung
  • Detaillierte Erklärung von vier Möglichkeiten, dies an Ereignisse in React zu binden
  • Vergleich verschiedener Methoden der Ereignisbindung beim React-Lernen
  • Details zur Ereignisbindung reagieren

<<:  Detaillierte Erläuterung der Idee, mysql8.0.11 zu installieren, das Root-Passwort zu ändern und Navicat für MySQL zu verbinden

>>:  Verwenden Sie den Crontab-Befehl in der Linux-Umgebung, um geplante periodische Ausführungsaufgaben einzurichten [einschließlich PHP-Ausführungscode].

Artikel empfehlen

Lösung für den internen Serverfehler Nginx 500

Als ich heute Nginx verwendete, trat ein 500-Fehl...

Tutorial zur Installation von MySQL auf Alibaba Cloud Centos 7.5

Es scheint, dass die MySQL-Server-Datei zur norma...

Das Vue-Projekt realisiert den Paging-Effekt

Der Paging-Effekt wird zu Ihrer Information im Vu...

So zeichnen Sie eine Mindmap in einem Miniprogramm

Inhaltsverzeichnis Was ist eine Mindmap? Wie zeic...

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex? Das Erstellen eines In...

Eine kurze Diskussion über zwei Strombegrenzungsmethoden in Nginx

Die Belastung wird im Allgemeinen während des Sys...

Analyse eines MySQL-Deadlock-Szenariobeispiels

Vorwort Kürzlich stieß ich auf ein Deadlock-Probl...

MySQL-Primärschlüssel-Benennungsstrategie im Zusammenhang

Als ich kürzlich die Details der Datenlebenszyklu...

Detailliertes Tutorial zur Installation von MySQL 8.0.13 (rpm) auf Centos7

yum oder rpm? Die Yum-Installationsmethode ist se...

Das Prinzip und die Anwendung der ES6-Dekonstruktionszuweisung

Inhaltsverzeichnis Array-Destrukturierungszuweisu...

Der Unterschied zwischen Vue-Interpolationsausdruck und V-Text-Direktive

Inhaltsverzeichnis 1. Verwenden Sie Plugin-Ausdrü...