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

js objektorientierte Methode zum Erzielen eines Drag-Effekts

In diesem Artikel wird der spezifische Code zur I...

So rufen Sie das Kennwort für MySQL 8.0.22 auf dem Mac ab

Neueste Version von MySQL 8.0.22 zur Kennwortwied...

Installations-Tutorial zur dekomprimierten Version von MySQL5.7.21 unter Win10

Installieren Sie die entpackte Version von Mysql ...

Beispielcode für HTML-Layout links und rechts

CSS: Code kopieren Der Code lautet wie folgt: html...

Die Vue-Konfigurationsdatei generiert automatisch Routing- und Menüinstanzcode

Inhaltsverzeichnis Vorne geschrieben router.json ...

Analysieren Sie das Arbeitsprinzip von Tomcat

SpringBoot ist wie eine riesige Python, die sich ...

Kurs zur Web-Frontend-Entwicklung Was sind die Web-Frontend-Entwicklungstools

Mit der Entwicklung der Internettechnologie werde...

mysql teilt eine Datenzeile basierend auf Kommas in mehrere Zeilen auf

Inhaltsverzeichnis Trennwirkung Erläuterung der B...