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

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...

Detaillierte Erläuterung der MySQL-Transaktionsverarbeitung

1. MySQL-Transaktionskonzept MySQL-Transaktionen ...

So löschen Sie die MySQL-Registrierung

Spezifische Methode: 1. Drücken Sie [ Win+R ], um...

Installieren und konfigurieren Sie SSH in CentOS7

1. Installieren Sie openssh-server yum install -y...

Seitenlayout für Bootstrap 3.0-Lernnotizen

Dieses Mal werden wir hauptsächlich etwas über da...

Beispiel für eine geplante MySQL-Datenbanksicherung

Dieser Artikel beschreibt das Beispiel eines gepl...

Grundprinzipien für die Zusammenstellung einer Website-Homepage

1. Die Organisationsstruktur des Hypertext-Dokumen...

Einige Datenverarbeitungsmethoden, die häufig in JS verwendet werden können

Inhaltsverzeichnis DOM-Verarbeitung Arrays Verfah...