Codeanalyse synchroner und asynchroner SetState-Probleme in React

Codeanalyse synchroner und asynchroner SetState-Probleme in React

React entstand als internes Projekt bei Facebook. Die Entstehung von React stellt eine revolutionäre Innovation dar. React ist ein subversives Front-End-Framework. React stellt es offiziell als eine deklarative, effiziente und flexible JavaScript-Bibliothek zum Erstellen von Benutzeroberflächen vor. Obwohl die Hauptfunktion von React darin besteht, Benutzeroberflächen zu erstellen, hat das allmähliche Wachstum des Projekts React zu einer WebApp-Lösung gemacht, die sowohl das Front-End als auch das Back-End abdeckt.

Angular verwendet das Watcher-Objekt, Vue den Observer-Modus und React den Status. Sie haben jeweils ihre eigenen Eigenschaften. Es gibt kein Gut oder Böse, nur unterschiedliche Entscheidungen aufgrund unterschiedlicher Anforderungen.

Offizielle Website von React: https://reactjs.org/GitHub

Die Adresse lautet: https://github.com/facebook/react

1. In React sind von React gesteuerte Ereignisbehandlungsfunktionen wie onClick, onChange usw. und setState asynchron

importiere React, {Komponente} von „react“;

exportiere Standardklasse Input erweitert Komponente {
    Konstruktor(Requisiten) {
        super(Requisiten);    

        dieser.Zustand={
            Name: 'Hallo'
        }    
    }

    _onChange(e) {
        dies.setState({
            Name: „Welt“
        })

        console.log(dieser.Status.Name); //hallo
    }

  rendern () {
    zurückkehren (
      <div Klassenname='cp'>
        <Eingabeklassenname = 'cp-Eingabe' Wert = {this.state.name} bei Änderung = {this._onChange.bind(this)} Typ = "Text"/>                
      </div>
    );
  }
}

2. In nativen JS-Abhörereignissen wie addEventListener ist setState synchron

importiere React, {Komponente} von „react“;

exportiere Standardklasse Input erweitert Komponente {
    Konstruktor(Requisiten) {
        super(Requisiten);    

        dieser.Zustand={
            Name: 'Hallo'
        }    
    }

    _onChange(e) {
        // etwas tun
    }


    componentDidMount() {
        Geben Sie die Zeichenfolge ".cp-input" ein.
        input.addEventListener('klicken', ()=>{
            dies.setState({
                Name: „Welt“
            })

            console.log(dieser.Status.Name); //Welt
        })
    }

  rendern () {
    zurückkehren (
      <div Klassenname='cp'>
        <Eingabeklassenname = 'cp-Eingabe' Wert = {this.state.name} bei Änderung = {this._onChange.bind(this)} Typ = "Text"/>                
      </div>
    );
  }
}

3. In setTimeout ist setStatet synchron

importiere React, {Komponente} von „react“;

exportiere Standardklasse Input erweitert Komponente {
    Konstruktor(Requisiten) {
        super(Requisiten);    

        dieser.Zustand={
            Name: 'Hallo'
        }    
    }

    _onChange(e) {
        // etwas tun
    }


    componentDidMount() {
        setzeTimeout(()=>{
            dies.setState({
                Name: „Welt“
            })
            console.log(dieser.Status.Name); //Welt
        }, 1000)
    }

  rendern () {
    zurückkehren (
      <div Klassenname='cp'>
        <Eingabeklassenname = 'cp-Eingabe' Wert = {this.state.name} bei Änderung = {this._onChange.bind(this)} Typ = "Text"/>                
      </div>
    );
  }
}

Das Obige ist der detaillierte Inhalt der detaillierten Analyse des synchronen und asynchronen Codes von setState in React. Weitere Informationen zum synchronen und asynchronen setState von React finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Verständnis des synchronen oder asynchronen Problems von setState in React
  • Die Verwendung von setState in React und die Verwendung von synchron und asynchron
  • Verwendung von synchronen und asynchronen setState-Szenarien in React

<<:  MySQL-Anweisungsanordnung und zusammenfassende Einführung

>>:  So installieren und verwenden Sie Cockpit unter CentOS 8/RHEL 8

Artikel empfehlen

So migrieren Sie lokales MySQL in eine Serverdatenbank

Wir können den scp-Befehl von Linux (scp kann unt...

Zusammenfassung der Methoden zum Bereinigen von Mysql general_log

Methode 1: GLOBAL festlegen general_log = "A...

Vue implementiert das Hoch- und Herunterladen von Dateien

In diesem Artikelbeispiel wird der spezifische Co...

So optimieren Sie den MySQL-Deduplizierungsvorgang maximal

Inhaltsverzeichnis 1. Clevere Verwendung von Indi...

Prinzip und Anwendung der MySQL-Master-Slave-Synchronisation

Inhaltsverzeichnis 1. Master-Slave-Synchronisatio...

Über das Problem beim Schreiben von Plugins zum Mounten von DOM in vue3

Im Vergleich zu vue2 verfügt vue3 über ein zusätz...

Häufige Fehler bei der Verwendung von React Hooks

React Hooks ist eine neue Funktion, die in React ...

Verwenden von JavaScript zum Implementieren von Karusselleffekten

In diesem Artikel wird der spezifische Code für J...