Was sind Refs Refs bieten uns eine Möglichkeit, auf DOM-Knoten oder React-Elemente zuzugreifen, die in der Rendermethode erstellt wurden. Schiedsrichter Die Ref-Weiterleitung ist eine optionale Funktion, die es bestimmten Komponenten ermöglicht, einen Ref zu empfangen und ihn an untergeordnete Komponenten weiterzugeben (mit anderen Worten „weiterzuleiten“). Standardmäßig können Sie das Ref-Attribut nicht für Funktionskomponenten verwenden, da diese keine Instanzen haben: 1. String-ReferenzenAufgrund einiger Probleme mit String-Referenzen wird die Verwendung dieser Methode nicht empfohlen. Es ist veraltet und wird möglicherweise in einer zukünftigen Version entfernt. importiere React von „react“; // Übergeordnete Komponente exportiert Standardklasse StringRef erweitert React.PureComponent { componentDidMount() { console.log("stringRefDom:", this.refs.stringRefDom); console.log("stringRefComp:", this.refs.stringRefComp); } rendern() { zurückkehren ( <div> {/*So verwenden Sie native Komponenten*/} <div ref={"stringRefDom"}>stringRefDom</div> {/*So verwenden Sie die Klassenkomponente*/} <StringRefComp ref={"stringRefComp"} /> </div> ); } } //Klassenkomponente class StringRefComp extends React.PureComponent { rendern() { Gibt den StringRefComp zurück. } } 2. Rückrufreferenzen
importiere React von „react“; // Übergeordnete Komponente exportiert Standardklasse CallbackRef erweitert React.PureComponent { Konstruktor(Requisiten) { super(Requisiten); this.callbackRefDom = null; this.callbackRefComp = null; } componentDidMount() { console.log("callbackRefDom:", this.callbackRefDom); console.log("callbackRefComp:", this.callbackRefComp); } //Rückruffunktion setCallbackRefDom = (ref) => { dies.callbackRefDom = ref; }; setCallbackRefComp = (ref) => { dies.callbackRefComp = ref; }; //Rückruffunktion render() { zurückkehren ( <div> <div ref={this.setCallbackRefDom}>RückrufRefDom</div> <CallbackRefComp ref={this.setCallbackRefComp} /> </div> ); } } //Klassenkomponente class CallbackRefComp extends React.PureComponent { rendern() { returniere <div>callbackRefComp</div>; } } Reagieren.createRef()
importiere React von „react“; // Übergeordnete Komponente exportiert Standardklasse CreateRef erweitert React.PureComponent { Konstruktor(Requisiten) { super(Requisiten); dies.createRefDom = React.createRef(); dies.createRefComp = React.createRef(); } componentDidMount() { Konsole.log("createRefDom:", dies.createRefDom.current); Konsole.log("createRefComp:", dies.createRefComp.current); } rendern() { zurückkehren ( <div> <div ref={this.createRefDom}>RefDom erstellen</div> <RefComp erstellen ref={this.createRefComp} /> </div> ); } } //Klassenkomponente class CreateRefComp extends React.PureComponent { rendern() { Geben Sie <div>CreateRefComp</div> zurück. } } 4. useRef
importiere React, { useEffect } von "react"; // Übergeordnete Komponente const UseRef = React.memo(() => { // // Sie können auch // const createRefDom = React.createRef(); verwenden. // const createRefComp = React.createRef(); const createRefDom = React.useRef(); const createRefComp = React.useRef(); useEffect(() => { Konsole.log("useRefDom:", createRefDom.current); Konsole.log("useRefComp:", createRefComp.current); }, []); zurückkehren ( <div> <div ref={createRefDom}>useRefDom</div> <UseRefComp ref={createRefComp} /> </div> ); }); Standard-UseRef exportieren; //Klassenkomponente class UseRefComp extends React.PureComponent { rendern() { return <div>useRefComp</div>; } } 5. Refs und Funktionskomponenten
importiere React, { useEffect, useImperativeHandle } von "react"; // Übergeordnete Komponente const ForwardRef = React.memo(() => { const createRefComp = React.useRef(); const createRefCompMethod = React.useRef(); useEffect(() => { Konsole.log("useRefComp:", createRefComp.current); console.log("createRefCompMethod:", createRefCompMethod.current); Erstellen SieRefComp.current.reload(); }, []); zurückkehren ( <div> <ForwardRefFunc ref={createRefComp} /> </div> ); }); Standard-ForwardRef exportieren; const RefFunc = React.forwardRef((props, ref) => { const [name, setName] = React.useState(null); const neu laden = () => { console.log("neu laden"); setzeTimeout(() => { setName("Weiterleitungsreferenzfunktion"); }, 3000); }; //useImperativeHandle ermöglicht Ihnen die Anpassung des Instanzwertes, der der übergeordneten Komponente angezeigt wird, wenn Sie rejectImperativeHandle(ref, () => { verwenden. zurückkehren { neu laden: neu laden, }; }); return <div ref={ref}>ForwardRefFunc {name}</div>; }); const ForwardRefFunc = React.memo(RefFunc); Das ultimative Ziel von forwardRef und useImperativeHandle ist der Versuch, ein aufrufbares Objekt für ref bereitzustellen!
ZusammenfassenDamit ist dieser Artikel über einige häufige Verwendungen von Refs in React abgeschlossen. Weitere Informationen zur Verwendung von Refs in React finden Sie in den vorherigen Artikeln von 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:
|
<<: So erweitern Sie die Festplattengröße einer virtuellen Maschine
>>: MySQL 8.0 DDL-Atomaritätsfunktion und Implementierungsprinzip
Vorwort Der This-Zeiger in JS hat Anfängern schon...
Ich möchte das grafische Tutorial zur Installatio...
Aufgrund der Einschränkung der CPU-Berechtigungen...
Vorwort Reduce ist eine der neuen herkömmlichen A...
1. Pfeilfunktion 1. Nutzen Sie die Tatsache, dass...
Frage: Als ich kürzlich an Projektstatistiken arb...
Um War mit Docker bereitzustellen, müssen Sie ein...
Inhaltsverzeichnis 1. Das Konzept von Prozess und...
<br />Verwandte Artikel: innerHTML HTML DOM ...
In diesem Artikel wird der spezifische JavaScript...
sed ist ein Zeichenstromeditor unter Unix, also e...
In diesem Artikelbeispiel wird der spezifische Co...
<br />In diesem Artikel wurden die verschied...
Vorwort In unserer täglichen Arbeit müssen wir hä...
Beispiel für das Zuschneiden einer Webseite von P...