⊗jsrtPmHkURD 13 of 47 menu

Die gebruik van die useRef-hook vir DOM in React

In een van die vorige lesse het ons genoem dat refs die meeste gebruik word vir toegang tot DOM elemente.

Refs sal te hulp kom wanneer jy, byvoorbeeld, nodig het om op 'n element te fokus, te scroll of sy afmetings en posisie te bereken, of dalk van sommige van sy metodes of eienskappe gebruik te maak, aangesien React nie ingeboude metodes vir sulke dinge het nie.

Kom ons kyk na 'n voorbeeld met 'n invoerveld, hoe dit gedoen word. Skep 'n komponent met 'n invoerveld en 'n knoppie:

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

Om te begin, voer ons in die komponent in useRef:

import { useRef } from 'react';

En skep 'n ref ref in die komponent. Inisialiseer dit met die waarde null:

const ref = useRef(null);

Plaas 'n klikhanterer op die knoppie:

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

Om toegang tot die invoerveld te hê, skryf ons ons ref ref in die ref attribuut van die invoerveld. Sodoende, wanneer React die DOM node vir hierdie invoerveld skep, sal dit 'n verwysing daarna in ref.current plaas en ons sal die metodes van die invoerveld kan gebruik:

<input ref={ref} />

En uiteindelik, voeg ons die funksie vir die hantering van die klik by, sodat wanneer daar op die knoppie geklik word, die invoerveld fokus kry. Nou kan ons dit doen deur die ref, waarin die verwysing na ons invoerveld lê, deur na sy focus metode te verwys:

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

Druk op die knoppie en maak seker dat die invoerveld fokus kry.

Neem die kode van die App komponent, wat ons in hierdie les geskryf het en maak dit so dat met 'n klik op die knoppie die invoerveld nie net fokus kry nie, maar die invoerveld ook skoongemaak word. Gebruik vir dit die value eienskap van die invoerveld.

Afrikaans
AzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ons gebruik koekies vir die werking van die webwerf, ontleding en personalisering. Die verwerking van data geskied volgens die Privaatheidsbeleid.
aanvaar alles instel verwerp