Einführung in die KomponentenkommunikationInhalt
Drei Wege
ZusammenfassungDer Status in einer Komponente ist privat, d. h. der Status einer Komponente kann nur innerhalb der Komponente verwendet werden und kann nicht direkt außerhalb der Komponente verwendet werden. Komponentenkommunikation - Vater zu SohnInhalt:
KerncodeDie übergeordnete Komponente stellt Daten bereit und übergibt diese an die untergeordnete Komponente Klasse Parent erweitert React.Component { Status = { Nachname: 'Name' } rendern() { zurückkehren ( <div> Daten an untergeordnete Komponenten weitergeben: <Child name={this.state.lastName} /> </div> ) } } Unterkomponente empfängt DatenFunktion Child(Requisiten) { return <div>Die untergeordnete Komponente empfängt Daten: {props.name}</div> } Komponentenkommunikation - untergeordnetes Element zum übergeordneten ElementIdeenBei Verwendung der Rückruffunktion stellt die übergeordnete Komponente den Rückruf bereit, die untergeordnete Komponente ruft ihn auf und die zu übergebenden Daten werden als Parameter der Rückruffunktion verwendet. Schritt1. Übergeordnete Komponente 1. Definieren Sie eine Callback-Funktion f (die zum Empfangen von Daten verwendet wird) 2. Übergeben Sie die Funktion f als Wert des Attributs an die untergeordnete Komponente 2. Unterkomponenten 1. Holen Sie sich f durch Requisiten 2. Rufen Sie f auf und übergeben Sie die Daten der untergeordneten Komponente KerncodeDie übergeordnete Komponente stellt eine Funktion bereit und übergibt sie an die untergeordnete Komponente Klasse Parent erweitert React.Component { Zustand: { Zahl: 100 } f = (Zahl) => { console.log('Empfangene Unterkomponentendaten', num) } rendern() { zurückkehren ( <div> Untergeordnete Komponente: <Child f={this.f} /> </div> ) } } Die untergeordnete Komponente empfängt die Funktion und ruft sie auf Klasse Child erweitert React.Component { handleKlick = () => { // Rufe die von der übergeordneten Komponente übergebenen Props auf und übergebe den Parameter this.props.f(100) } zurückkehren ( <button onClick={this.handleClick}>Klicken Sie hier, um Daten an die übergeordnete Komponente zu übergeben</button> ) } ZusammenfassungKind zu Elternteil: Rufen Sie die im Elternteil definierte Methode im Kindbestandteil auf und übergeben Sie Parameter nach Bedarf Komponentenkommunikation - Brother KomponentenIn React gibt es so etwas wie Geschwisterkomponenten nicht, es gibt nur eine Statusförderung. Ideen
Kerncode importiere React, {Komponente} von 'react' ReactDOM von „react-dom“ importieren importiere Jack aus './Jack' importiere Rose aus './Rose' Klasse App erweitert Komponente { // 1. Der Status wird zum übergeordneten Komponentenstatus = { hochgestuft. Nachricht: '', } rendern() { zurückkehren ( <div> <h1>Ich bin eine App-Komponente</h1> <Jack sagt={this.changeMsg}></Jack> {/* 2. Zeigen Sie der untergeordneten Komponente den Status an*/} <Rose msg={this.state.msg}></Rose> </div> ) } changeMsg = (msg) => { dies.setState({ Nachricht, }) } } // Rendering-Komponente ReactDOM.render(<App />, document.getElementById('root')) importiere React, {Komponente} von 'react' exportiere Standardklasse Jack erweitert Komponente { rendern() { zurückkehren ( <div> <h3>Ich bin die Jack-Komponente</h3> <button onClick={this.say}>Sagen</button> </div> ) } sagen = () => { this.props.say('du springst, ich schaue') } } importiere React, {Komponente} von 'react' exportiere Standardklasse Rose erweitert Komponente { rendern() { zurückkehren ( <div> <h3>Ich bin die Rose-Komponente - {this.props.msg}</h3> </div> ) } } Komponentenkommunikation - Komponentenkommunikation über verschiedene Ebenen hinwegWenn Sie die komponentenübergreifende Kommunikation in Vue nutzen möchten, müssen Sie Context verwenden. Schritte zur Verwendung von ContextEs gibt drei Schritte: 1. Importieren und rufen Sie die Methode createContext auf, um die Provider- und Consumer-Komponenten aus dem Ergebnis zu dekonstruieren importiere { createContext } von 'react' const { Anbieter, Verbraucher } = Kontext erstellen() 2. Verwenden Sie die Provider-Komponente, um die Stammkomponente zu umschließen und die Daten bereitzustellen, die über das Wertattribut freigegeben werden sollen zurückkehren ( <Providerwert={Hier die zu übergebenden Daten einfügen}> <Inhalt der Root-Komponente/> </Anbieter> ) 3. Umschließen Sie in jeder abgeleiteten Komponente die gesamte Komponente mit der in Schritt 2 exportierten Consumer-Komponente. zurückkehren ( <Verbraucher> { (Daten) => { // Die Parameterdaten hier erhalten automatisch die vom Provider übergebenen Daten // console.log(data) return <Komponenteninhalt> } } </Verbraucher> ) Landecode Erstellen Sie die Datei importiere { createContext } von 'react' const { Anbieter, Verbraucher } = Kontext erstellen() export { Verbraucher, Anbieter } Transformieren der Stammkomponente importiere { Provider } aus './context' rendern () { zurückkehren ( <Anbieterwert={{ num: this.state.num }}> <div> Stammkomponente, Nummer: {this.state.num} <Übergeordnetes Element /> <Onkel /> </div> </Anbieter> ) } Transformieren Sie die abgeleitete Komponente React von „react“ importieren importiere { Consumer } von './context' exportiere Standardklasse Uncle erweitert React.Component { rendern () { zurückkehren ( <Verbraucher> {(Daten) => { return <div>Ich bin Onkel-Komponente, {data.num}</div> }} </Verbraucher> ) } } ZusammenfassenDieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können! Das könnte Sie auch interessieren:
|
<<: Webdesign muss Zweck, Ideen, Gedanken und Beständigkeit haben
>>: 10 Fähigkeiten, die Frontend-Entwickler millionenschwer machen
In horizontaler Richtung können Sie die Zeilenaus...
/etc/fstab Partitionen/Festplatten automatisch mo...
Ich bin auf ein sehr ungewöhnliches Problem mit ve...
In der Datenbank führen sowohl die Schlüsselwörte...
Vorwort Je nach Projektbedarf wird Vue-Touch verw...
## 1 Ich lerne gerade die Docker-Bereitstellung u...
Wenn Sie nicht wissen, wie das System auf dem Com...
Inhaltsverzeichnis 1. Übersicht 2. Verwenden Sie ...
Das Zielattribut eines Links bestimmt, wohin der L...
Ich bin schon einmal auf das Problem gestoßen, da...
Der spezifische Code zum Einkapseln der Bildaufna...
CUDA-Installation, cuda herunterladen Geben Sie d...
Inhaltsverzeichnis 1. Holen Sie sich zuerst den e...
Vorwort In MySQL werden datenbankübergreifende Ab...
Inhaltsverzeichnis Konzept Array-Destrukturierung...