⊗jsrtPmHkURD 13 of 47 menu

Verwendung des useRef-Hooks für DOM in React

In einer der vorherigen Lektionen haben wir erwähnt, dass Refs am häufigsten für den Zugriff auf DOM-Elemente verwendet werden.

Refs werden dir zur Hilfe kommen, wenn du zum Beispiel den Fokus auf ein Element setzen, einen Scroll durchführen oder seine Größe und Position berechnen musst, oder möglicherweise einige seiner Methoden oder Eigenschaften nutzen möchtest, denn für solche Dinge gibt es in React keine eingebauten Methoden.

Schauen wir uns an einem Beispiel mit einem Input-Feld an, wie das gemacht wird. Erstellen wir eine Komponente mit einem Input-Feld und einem Button:

return ( <div> <input /> <button>focus</button> </div> );

Importieren wir zunächst in die Komponente useRef:

import { useRef } from 'react';

Und legen wir einen Ref ref in der Komponente an. Initialisieren wir ihn mit dem Wert null:

const ref = useRef(null);

Hängen wir auf den Button einen Event-Handler für den Klick:

<button onClick={handleClick}>focus</button>

Um Zugriff auf das Input-Feld zu haben, schreiben wir unseren Ref ref in das Attribut ref des Input-Felds. Auf diese Weise, wenn React den DOM-Knoten für dieses Input-Feld erstellt, legt es einen Verweis daran in ref.current ab und wir können die Methoden des Input-Felds nutzen:

<input ref={ref} />

Und schließlich fügen wir die Funktion zur Behandlung des Klicks hinzu, damit bei einem Klick auf den Button der Fokus auf das Input-Feld gesetzt wird. Jetzt können wir das über den Ref machen, in dem der Verweis auf unser Input-Feld liegt, indem wir auf seine Methode focus zugreifen:

function handleClick() { ref.current.focus(); }

Klicken Sie auf den Button und überzeugen Sie sich, dass der Fokus auf das Input-Feld gesetzt wird.

Nehmen Sie den Code der Komponente App, den wir in dieser Lektion geschrieben haben, und machen Sie es so, dass beim Klick auf den Button im Input-Feld zusätzlich zum Setzen des Fokus auch noch das Löschen des Eingabefelds erfolgt. Nutzen Sie dafür die Eigenschaft value des Input-Felds.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen