Eine kurze Diskussion über das Prinzip der bidirektionalen Datenbindung von React

Eine kurze Diskussion über das Prinzip der bidirektionalen Datenbindung von React

Wenn Sie Vue gelernt haben und ein tiefes Verständnis der bidirektionalen Datenbindung von Vue haben, werden Sie verstehen, dass der Kern der bidirektionalen Datenbindung Vue 2.0 eigentlich darin besteht, Datenentführung und -überwachung über Object.defineProperty zu erreichen.

In Vue 3.0 wird Proxy verwendet, um das gesamte Objekt zu überwachen und Vue2.0 zu optimieren.

Was ist bidirektionale Datenbindung?

Zweiseitige Bindung zwischen Datenmodellen und Ansichten.

Wenn sich die Daten ändern, ändert sich auch die Ansicht, und wenn sich die Ansicht ändert, ändern sich auch die Daten synchron. Man kann sagen, dass die Änderungen des Benutzers an der Ansicht automatisch mit dem Datenmodell synchronisiert werden und sich auch das Datenmodell auf die gleiche Weise ändert.

Vorteile der bidirektionalen Datenbindung: Es müssen keine CRUD-Operationen (Erstellen, Abrufen, Aktualisieren, Löschen) wie bei der unidirektionalen Datenbindung durchgeführt werden. Die bidirektionale Datenbindung wird am häufigsten bei Formularen verwendet. Auf diese Weise haben wir, wenn der Benutzer die Eingabe auf der Frontend-Seite vervollständigt, die Eingabedaten des Benutzers erhalten und sie ohne Operation in das Datenmodell eingefügt.

Implementieren der bidirektionalen Datenbindung

Allerdings gibt es in React keinen bidirektionalen Datenbindungsmechanismus und wir müssen ihn selbst implementieren.

Datenauswirkungsansicht

Tatsächlich hat uns React dabei geholfen, diese Funktion zu erreichen, indem wir setState({ }) zum Ändern von Daten verwendet haben.
(Die von React intern bereitgestellte Änderungsmethode) erlaubt keine Datenänderung durch die Methode this.state.屬性名= 數據.

Code

importiere React, {Komponente} von „react“;
//Antd-UI-Bibliothek importierenimport { Button } von „antd“;  
Klasse Home erweitert Komponente {
    Konstruktor(Requisiten) {
        super(Requisiten);
        dieser.Zustand = { 
            Eingabewert:'',
         };
    }   
    setzeWert=()=>{
        dies.setState({
            inputVal: "Wert ändern"
        })
    }
    rendern() {
        zurückkehren (
            <div Klassenname="Startseite" >
                Home-Komponente<p> {this.state.inputVal}</p>
                 {/* Antd-UI-Bibliothek verwenden*/}
                <Button type="primary" onClick={this.setValue}>Daten ändern</Button>
            </div>
        );
    }
}
Standard-Homepage exportieren;

Wirkung

Bildbeschreibung hier einfügen

Ansichten wirken sich auf Daten aus

Das von React bereitgestellte onChage 監聽事件wird verwendet, um die dynamische Eingabe von Daten zu realisieren. Gleichzeitig wird value oder defaultValue verwendet, um den Inhalt im input anzuzeigen. Zur Vereinfachung der Anzeige wird hier das p Tag verwendet, um den Inhalt anzuzeigen

Code

importiere React, {Komponente} von „react“;
importiere { Button } von 'antd'; // antd UI-Bibliotheksklasse Home erweitert Komponente {
    Konstruktor(Requisiten) {
        super(Requisiten);
        dieser.Zustand = { 
            Eingabewert:'',
         };

    }    
    Änderung = (ev)=>{
        dies.setState({
            Eingabewert:ev.Zielwert
        })
    }
    rendern() {
        zurückkehren (
            <div Klassenname="Startseite" >
                Home-Komponente <Eingabe 
                    beiÄnderung={diese.Änderung}
                    // Wert={this.state.inputVal}
                    Standardwert = {this.state.inputVal}
                    Platzhalter="Textinhalt eingeben"
                 />
                <p>&emsp;{dieser.Zustand.Eingabewert}</p>
            </div>
        );
    }
}
Standard-Homepage exportieren;

Wirkung

Bildbeschreibung hier einfügen

Beachten:

Bei value kann nur einer value und defaultValue verwendet werden, andernfalls wird eine Warnung ausgegeben

Damit ist dieser Artikel über das Prinzip der bidirektionalen Datenbindung von React abgeschlossen. Weitere relevante Inhalte zur bidirektionalen Datenbindung von React finden Sie in früheren Artikeln auf 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:
  • Zweiwege-Bindungsproblem zwischen übergeordneter Komponente und untergeordneter Komponente in React
  • Eine kurze Analyse des Prinzips der bidirektionalen Datenbindung in Vue, Angular und React
  • Detaillierte Erklärung von React zur Implementierung der bidirektionalen Bindung mit und ohne Plugins
  • React implementiert Beispielcode für bidirektionale Bindung
  • Verstehen Sie die bidirektionale Bindung in React wirklich?

<<:  Der Unterschied zwischen Schaltfläche und Eingabetyp = Schaltfläche und Vorsichtsmaßnahmen

>>:  Detaillierte Schritte zur Installation und Verwendung von VMware ESXi 6.5

Artikel empfehlen

Implementierungsschritte zum Installieren einer Java-Umgebung in Docker

Dieser Artikel basiert auf Linux CentOS8, um Dock...

Apache Spark 2.0-Jobs brauchen lange, bis sie abgeschlossen sind

Phänomen Bei der Verwendung von Apache Spark 2.x ...

So zeigen Sie die Zeitzone in MySQL an und ändern sie

Heute habe ich festgestellt, dass ein Programm ei...

In JavaScript integrierter Zeit- und Datumsformatierungsbeispielcode

1. Grundkenntnisse (Methoden von Datumsobjekten) ...

Vorteile und Probleme des XHTML CSS Website Designs

XHTML ist die derzeit international verbreitete S...

Beispiele für die Verwendung von HTML-Marquee-Tags

Dieses Tag ist nicht Teil von HTML3.2 und unterstü...

So kompilieren Sie den Linux-Kernel

1. Laden Sie die erforderliche Kernel-Version her...

Beheben Sie den Fehler während der Verbindungsausnahme in Docker

Wenn Sie Docker zum ersten Mal verwenden, werden ...

Zusammenfassung der vier Möglichkeiten zur Einführung von CSS (Sharing)

1. Inline-Referenz: Wird direkt auf dem Etikett v...

Modularität in Node.js, npm-Paketmanager erklärt

Inhaltsverzeichnis Das Grundkonzept der Modularit...

Detaillierte Erklärung des Sandbox-Mechanismus von Vue3

Inhaltsverzeichnis Vorwort Browser kompilierte Ve...

Unterschiede im Stundentrennzeichen zwischen Browsern

Beim Erstellen einer Webseite verwenden Sie manchm...