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

Analyse der Prinzipien von Docker-Containern

Inhaltsverzeichnis 01 Was ist das Wesen eines Con...

Docker-Konfiguration Alibaba Cloud Container Service-Betrieb

Konfigurieren des Alibaba Cloud Docker Container ...

Das Installationstutorial zu mysql5.5.28 ist super detailliert!

mysql5.5.28 Installations-Tutorial zu Ihrer Infor...

Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen

1. Die erste Methode besteht darin, den Befehl un...

Beispiel für eine CSS3-Tab-Animation mit dynamischem Hintergrundwechseleffekt

CSS 3-Animationsbeispiel - Dynamischer Effekt des...

Verwenden Sie Vue3 zur Datenbindung und Anzeigelistendaten

Inhaltsverzeichnis 1. Vergleich mit Vue2 1. Neue ...

So stellen Sie das umfassende Benutzererlebnis sicher

Verwandte Artikel: Website-Design für Benutzererfa...

So greifen Sie in Docker auf den lokalen Computer (Hostcomputer) zu

Frage Wie greife ich in Docker auf die lokale Dat...

JavaScript zum Erreichen aller oder umgekehrter Auswahlfunktionen

In diesem Artikel wird der spezifische JavaScript...

Zusammenfassung zum Erlernen von Docker-Befehlen in einem Artikel

Inhaltsverzeichnis Einführung Spiegel-Repository ...