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
Inhaltsverzeichnis Dokumentobjektmodell (DOM) DOM...
In diesem Artikelbeispiel wird der spezifische Ja...
Inhaltsverzeichnis Vorwort Einführung in SessionS...
Es gibt viele Schleifenanweisungen in JavaScript,...
SQL UNIQUE-Einschränkung Die UNIQUE-Einschränkung...
Inhaltsverzeichnis 1. Statische Implementierungsm...
Lassen Sie uns zunächst über den Wert von Web-Fro...
1. Voraussetzungen JDK wurde installiert echo $PA...
Vorwort Ich dachte immer, dass UTF-8 eine univers...
Inhaltsverzeichnis 1. Vorbereitung: 2. Quellcode-...
Befehl: mysqlhotcopy Dieser Befehl sperrt die Tab...
einführen Dieser Artikel basiert auf React + antd...
Inhaltsverzeichnis Vorwort Funktionen von Vue Nat...
Kürzlich stieß ich auf das Problem, ob die Daten b...
Wenn die Serverdaten nicht verschlüsselt und mit ...