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

So installieren Sie Nginx in Docker und konfigurieren den Zugriff über https

1. Laden Sie das neueste Nginx-Docker-Image herun...

Nachteile und sinnvolle Verwendung des MySQL-Datenbankindex

Inhaltsverzeichnis Richtige Verwendung von Indize...

Detaillierte Analyse des Linux-NFS-Mechanismus anhand von Fällen

In Fortsetzung des vorherigen Artikels erstellen ...

Verwenden von Streaming-Abfragen in MySQL, um Daten-OOM zu vermeiden

Inhaltsverzeichnis 1. Einleitung 2. JDBC implemen...

In diesem Artikel erfahren Sie mehr über NULL in MySQL

Inhaltsverzeichnis Vorwort NULL in MySQL 2 NULL b...

Was ist SSH-Portweiterleitung? Was nützt das?

Inhaltsverzeichnis Vorwort 1. Lokale Portweiterle...

Frage zu benutzerdefinierten Attributen von HTML-Tags

In der vorherigen Entwicklung haben wir die Stand...