Detaillierte Erläuterung der Verwendung von Requisiten in den drei Hauptattributen von React

Detaillierte Erläuterung der Verwendung von Requisiten in den drei Hauptattributen von React

In der letzten Ausgabe haben wir über den Status gesprochen. Als Nächstes sprechen wir über Requisiten. Die Funktion von Props besteht darin, zwischen Komponenten (Eltern-Kind-Komponenten) zu kommunizieren. Lassen Sie uns zunächst über ihre Verwendung in verschiedenen Komponenten sprechen:

Klassenkomponente

//Übergabe des Wertes der übergeordneten Komponente an die Klasse Father extends React.PureComponent{
    machen(){
        zurückkehren (
            <Sohnwert = {"Sohn"} />
        )
    }
}

Klasse Son erweitert React.PureComponent{
    machen(){
        zurückkehren (
            <div>Diese Daten sind {this.props.value}</div>
        )
    }
}

Funktionale Komponenten

Funktion Fa(){
    zurückkehren (
        <Sohnwert = {"Sohn"} />
    )
}

Funktion Sohn (Eigenschaften) {
    zurückkehren (
        <div>diese Daten sind {props.value}</div>
    )
}

In einer Funktionskomponente müssen Props nur einen Wert übergeben, was sehr praktisch ist. In der React-Dokumentation lautet die Erklärung von Props

Wenn ein React-Element eine benutzerdefinierte Komponente ist, konvertiert es die von JSX empfangenen Attribute und untergeordneten Elemente in ein einzelnes Objekt und übergibt es an die Komponente. Dieses Objekt heißt „props“

Daher können wir den von der übergeordneten Komponente hochgeladenen Wert über Props abrufen und die in jsx geschriebene untergeordnete Komponente auch direkt über props.children abrufen.

Requisiten sind schreibgeschützt

React betont in der Dokumentation

Alle React-Komponenten müssen ihre Eigenschaften vor Veränderungen schützen, genau wie reine Funktionen.

Wir haben bereits das Konzept reiner Funktionen in Redux erklärt. Kurz gesagt, wir können den Wert von Props nicht ändern.

Kommunikation zwischen Komponenten

Lassen Sie uns nun die Kommunikation zwischen Komponenten zusammenfassen:

  • Requisiten Schreiben wir zunächst eine Klassenkomponente:
// Wir haben bereits über die Übergabe von Werten von übergeordneten Komponenten an untergeordnete Komponenten gesprochen. Lassen Sie uns nun zusammenfassen, wie untergeordnete Komponenten Werte an übergeordnete Komponenten übergeben. Zu diesem Zeitpunkt muss die übergeordnete Komponente häufig zuerst eine Props-Funktion an die untergeordnete Komponente übergeben. Die untergeordnete Komponente ändert den Wert der übergeordneten Komponente, indem sie die übergebene Funktion export default class Fa extends Component { aufruft.
    Status = {faValue:'Fa1'}

    changeFa = (Wert)=>{
        dies.setState(()=>{
            Rückgabewert {faValue:Wert}
        })
    }
    rendern() {
        zurückkehren (
            <>
                <h1>Fas Wert ist {this.state.faValue}</h1>
                <Son changeFa={this.changeFa}/>
            </>
        )
    }
}

exportiere Standardklasse Son erweitert React.PureComponent{

    Änderungswert = ()=>{
        diese.props.changeFa(diese.inputRef.value)
    }
    rendern() {
        zurückkehren (
            <>
                <input type="text" placeholder={"Bitte geben Sie Ihren Wert ein"} ref={(el)=>{this.inputRef = el}}/>
                <button onClick={this.changeValue}>ändern</button>
            </>
        )
    }
}

Schreiben Sie dann eine Funktionskomponente:

Funktion Fa(){
    const [faValue,setFaValue] = useState("Fa1")

    const changeFa = (Wert)=>{
        setFaValue(Wert)
    }
    zurückkehren (
        <div>
            <h1>Fas Wert ist {faValue}</h1>
            <Son changeFa={changeFa} />
        </div>
    )
}

Funktion Sohn (Eigenschaften) {
    const Eingabewert = useRef("")
        //Definieren Sie eine Funktion zum Ändern des Werts der fa-Komponente const changeFaValue = ()=>{
            props.changeFa(Eingabewert.aktueller.Wert)
        }
        zurückkehren (
            <>
                <input type="text" placeholder={"Bitte geben Sie den Wert ein, den Sie ändern möchten"} ref={inputValue}/>
                <button onClick={changeFaValue}>Wert ändern</button>
            </>
        )
}
  • Eventbus (Abonnieren-Veröffentlichen-Mechanismus)

Dies kann als eine abgeschwächte Redux verstanden werden. Hier verwenden wir die Bibliothek pubsub-js, um es zu schreiben. Die Schreibmethode ist wie folgt:

//Beispielsweise muss ich im vorherigen Eingabefall einen Wert an die Brother-Komponente übergeben. Wenn wir keine Requisiten verwenden, wie sollen wir dann „Bro“ schreiben:
exportiere Standardklasse Bro erweitert Komponente {

    componentDidMount() {
        dies.sonData = PubSub.subscribe("Bruder",(msg,data)=>{
            console.log("Bro Component hat die Nachricht erhalten", Daten);
        })
    }

    componentWillUnmount() {
        PubSub.abbestellen(diese.sonData)
    }

    rendern() {
        zurückkehren (
            <>
                <div>Bruder</div>
            </>
        )
    }
}
Sohn:
exportiere Standardklasse Son erweitert React.PureComponent{

    Änderungswert = ()=>{
        PubSub.publish("Bruder",dieser.EingabeRef.Wert)
    }

    rendern() {
        zurückkehren (
            <>
                <input type="text" placeholder={"Bitte geben Sie Ihren Wert ein"} ref={(el)=>{this.inputRef = el}}/>
                <button onClick={this.changeValue}>ändern</button>
            </>
        )
    }
}

Bei dieser Methode werden üblicherweise drei APIs verwendet. Die erste ist „subscribe“, die das entsprechende Ereignis veröffentlicht und definiert, was mit dem Ereignis geschehen soll. Die zweite Möglichkeit ist „Publish“, das veröffentlichte Ereignisse abonniert und die entsprechenden zu ändernden Werte übergibt. Die dritte Möglichkeit ist das Abbestellen. Damit können Sie die Veröffentlichung abbrechen und den Speicher optimieren.

Oben finden Sie den ausführlichen Inhalt der detaillierten Erklärung zur Verwendung von Requisiten, einem der drei Hauptattribute von React. Weitere Informationen zu Requisiten, einem der drei Hauptattribute von React, finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Tiefgreifendes Verständnis der drei Kerneigenschaften von React
  • So verstehen Sie das Ref-Attribut von React genau
  • Detaillierte Erklärung der Verwendung von Refs in den drei Hauptattributen von React
  • Detaillierte Erklärung der Verwendung von Status in den drei Hauptattributen von React
  • Kennen Sie die drei wichtigsten Eigenschaften von React?

<<:  Sequenzimplementierungsmethode basierend auf MySQL

>>:  So implementieren Sie die Docker-Volume-Montage

Artikel empfehlen

Detaillierte Erklärung, wie MySQL Phantom-Lesevorgänge löst

1. Was ist Phantomlesen? Wenn bei einer Transakti...

Womit kann ich dich, meinen Tisch, retten (Haiyu-Blog)

Tabellen spielten einst eine sehr wichtige Rolle ...

Vue realisiert die Funktion zum Hochladen von Fotos auf den PC

In diesem Artikelbeispiel wird der spezifische Co...

So implementieren Sie eine einfache Datenüberwachung mit JS

Inhaltsverzeichnis Überblick erster Schritt Schri...

CSS-Anfänger-Tutorial: Hintergrundbild füllt den gesamten Bildschirm

Wenn Sie möchten, dass die gesamte Benutzeroberfl...

So erstellen Sie einen Nginx-Image-Server mit Docker

Vorwort Bei der allgemeinen Entwicklung werden Bi...

MySQL-Parameterbezogene Konzepte und Abfrageänderungsmethoden

Vorwort: In einigen früheren Artikeln haben wir h...

Vue-Routing zum Implementieren der Login-Abfangung

Inhaltsverzeichnis 1. Übersicht 2. Routing Naviga...

VUE implementiert einen Beispielcode für das Spiel Flappy Bird

Flappy Bird ist ein sehr einfaches kleines Spiel,...

Tutorial zur Installation von MYSQL8.0 auf Alibaba Cloud ESC

Öffnen Sie das Verbindungstool. Ich verwende Moba...

Probleme mit Index und FROM_UNIXTIME in MySQL

Null, Hintergrund Ich habe diesen Donnerstag viel...