Detaillierte Erklärung der wechselseitigen Verwendung von Ref in React

Detaillierte Erklärung der wechselseitigen Verwendung von Ref in React

1. Lassen Sie uns zunächst erklären, was Ref ist

Ref-Weiterleitung ist eine Technik, bei der ein Ref automatisch durch eine Komponente an eines ihrer untergeordneten Elemente weitergegeben wird. Dies ist für Bauteile in den meisten Anwendungsfällen jedoch nicht notwendig. Für einige Komponenten ist es jedoch nützlich, insbesondere für wiederverwendbare Komponentenbibliotheken.

Siehe Beschreibung auf der offiziellen Website: hier klicken.

2. Verwendung von ref in Hooks

1. Verwendung von ref in HTMLDom-Hooks

Verwenden Sie es einfach wie gewohnt auf der offiziellen Website. Hier ist ein Beispiel:

const Fn = ()=>{
    const testRef = useRef(null);
    console.log('testRef',testRef.current); // Wird zweimal gerendert, das erste Mal wird null ausgegeben, das zweite Mal <div>test</div>
    zurückkehren (
        <div ref={testRef}>Test</div>
    )
}

2. Verwendung von Ref in Hooks und Funktionskomponenten

Hier müssen Sie nur das ref-Attribut an die Funktionskomponente übergeben

const Fn = ()=>{
    const testRef = useRef(null);
    // Testfunktionskomponente definieren const Test = ({ refs }) => <div ref={refs}>Ich bin ein ReactDOM-Test</div>;
    console.log('testRef',testRef.current); // Wird zweimal gerendert, das erste Mal wird null ausgegeben, das zweite Mal <div>Ich bin ein ReactDOM-Test</div>
    zurückkehren (
        {/* Der Grund, warum hier „refs“ statt „ref as prop“ verwendet wird, liegt darin, dass „ref“ von React speziell verarbeitet wird und nicht als „props“ an React-Komponenten weitergegeben wird, ähnlich wie „key“ */}
         <Testreferenzen={testRef} /> 
    )
}

3. Verwenden von ref mit Klassenkomponenten in Hooks

Hier muss nur noch der Wert manuell dem useRef-Objekt im Callback-Ref der Klassenkomponente zugewiesen werden. Weitere Callback-Refs: hier

importiere ReactDom von „react-dom“;

const Fn = ()=>{
    const testClassRef = useRef(null);
    //Definiere die TestClass-Klassenkomponentenklasse TestClass extends React.Component {
        rendern() {
          zurückkehren (
            <div >
                Ich bin der TestClass-Komponententest</div>
          )
        }
    }
    console.log('testClassRef',testClassRef.current); // Wird zweimal gerendert, das erste Mal wird null ausgegeben, das zweite Mal <div>Ich bin ein TestClass-Komponententest</div>
    zurückkehren (
        {/* Der Grund, warum hier „refs“ statt „ref as prop“ verwendet wird, liegt darin, dass „ref“ von React speziell verarbeitet wird und nicht als „props“ an React-Komponenten weitergegeben wird, ähnlich wie „key“ */}
         <TestKlasse 
             ref={el => {
                console.log('neue Render-Referenzen')
                testClassRef.current = ReactDom.findDOMNode(el);
             }} 
         /> 
    )
}

4. Verwenden von ref mit Klasse und react-redux in Hooks

Wenn Sie auf eine von Connect umschlossene Klassenkomponente stoßen, müssen Sie das Ref-Attribut an die echte React-Komponente weitergeben, da die äußerste Schicht in einen React-Redux-Provider umschlossen wurde. Zu diesem Zeitpunkt müssen Sie auf das ForwardRef-Attribut von Connect achten.

importiere ReactDom von „react-dom“;
importiere { connect } von „react-redux“;

const Fn = ()=>{
    const testClassRef = useRef(null);
    //Definiere die TestClass-Klassenkomponentenklasse TestClass extends React.Component {
        rendern() {
          zurückkehren (
            <div >
                Ich bin der TestClass-Komponententest</div>
          )
        }
    }
    //Definieren Sie die von Connect von TestClass umschlossene Komponente //forwardRef:true. Stellen Sie Redux so ein, dass Ref als Props an die von Connect umschlossene Komponente übergeben werden kann. const TestClassConnect = connect(null, null, null, { forwardRef: true })(TestClass);
    
    console.log('testClassRef',testClassRef.current); // Wird zweimal gerendert, das erste Mal wird null ausgegeben, das zweite Mal <div>Ich bin ein TestClass-Komponententest</div>
    zurückkehren (
        {/* Der Grund, warum hier „refs“ statt „ref as prop“ verwendet wird, liegt darin, dass „ref“ von React speziell verarbeitet wird und nicht als „props“ an React-Komponenten weitergegeben wird, ähnlich wie „key“ */}
         <TestClassConnect
            ref={el => {
              console.log('neue Render-Referenzen')
              testClassRef.current = ReactDom.findDOMNode(el);
            }}
          />
    )
}

Oben finden Sie eine ausführliche Erläuterung der wechselseitigen Verwendung von Ref in React. Weitere Informationen zur wechselseitigen Verwendung von Ref in React finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Wie Sie React forwardRef verwenden und was Sie beachten müssen
  • Die vollständige Verwendung von Setup, Ref und Reactive in der Vue3-Kombinations-API
  • So verstehen Sie das Ref-Attribut von React genau
  • Detaillierte Erklärung der Verwendung von Refs in den drei Hauptattributen von React
  • Spezifische Verwendung von useRef in React
  • Beispiele für die Verwendung von React Ref
  • Detaillierte Erklärung zur Verwendung von Ref in React
  • Detaillierte Erklärung zur Verwendung von react-refetch
  • Lernen Sie zwei Demobeispiele von ref in React
  • Tutorial zur Verwendung von Refs in React
  • Detaillierte Erklärung zur Verwendung von React-Komponentenreferenzen
  • Verwendung der Pulldown-Aktualisierung von RefreshControll in React Native

<<:  So installieren und konfigurieren Sie einen FTP-Server in CentOS8.0

>>:  Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

Artikel empfehlen

JavaScript zur Implementierung der Login-Schiebereglerüberprüfung

In diesem Artikelbeispiel wird der spezifische Ja...

Erstellen einer KVM-Virtualisierungsplattform auf CentOS7 (drei Möglichkeiten)

KVM steht für Kernel-based Virtual Machine und is...

Implementierung von Portalen und Fehlergrenzbehandlung in React

Inhaltsverzeichnis Portale Fehlergrenzenbehandlun...

Detaillierte Erläuterung des Beispiels der Caching-Methode von Vue

Kürzlich wurde die neue Anforderung „Front-End-Ca...

Verwendung und Ausführungsprozess des HTTP-Moduls im Knoten

Welche Rolle spielt http im Knoten? Die Aufgabe d...

Implementieren eines Webplayers mit JavaScript

Heute zeige ich Ihnen, wie Sie mit JavaScript ein...

Schauen wir uns einige leistungsstarke Operatoren in JavaScript an

Inhaltsverzeichnis Vorwort 1. Null-Koaleszenzoper...

Zusammenfassung der englischen Namen chinesischer Schriftarten

Wenn Sie in CSS die Eigenschaft „font-family“ ver...

Ein Artikel zeigt Ihnen, wie Sie mit React ein Rezeptsystem implementieren

Inhaltsverzeichnis 1. Rezeptsammlung 1.1 Projekth...

Vue realisiert den Fortschrittsbalken-Änderungseffekt

Dieser Artikel verwendet Vue, um einfach die Ände...