⊗jsrtPmHkURD 13 of 47 menu

useRef hook-unun DOM ucun React-də istifadəsi

Əvvəlki dərslərin birində qeyd etdik ki, reflər ən çox DOM elementlərinə müraciət etmək ucun istifadə olunur.

Refər köməyinizə çatacaq o vaxtlarda ki, məsələn, elementə fokuslanmaq, skrol etmək və ya onun olculərini ve mövqeyini hesablamaq lazımdır, və ya bəlkə də onun bəzi metodlarından ve ya xüsusiyyətlərindən istifadə etmək lazımdır, axı React-də bu kimi şeylər ucun daxili metodlar yoxdur.

Gəlin bir input nümunəsi ilə baxaq, bu necə edilir. Bir input ve düyməsi olan komponent yaradaq:

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

Əvvəla, komponentə useRef import edək:

import { useRef } from 'react';

Və komponentdə bir ref ref yaradaq. Onu null dəyəri ilə işə salaq:

const ref = useRef(null);

Düyməcik üzərində klik işləyicisi qeyd edək:

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

Inputa müraciət etmək ucun, bizim ref ref-i inputun ref atributuna yazaq. Beləliklə, React bu input ucun DOM qovşağı yaradanda, ona olan istinadı ref.current-ə qoyacaq ve biz inputun metodlarından istifadə edə biləcəyik:

<input ref={ref} />

Və nəhayət, klikin emalı funksiyasını əlavə edək, ki, düyməyə kliklənəndə, inputa fokus vurulsun. İndi biz bunu ref vasitəsilə edə bilərik, hansında ki bizim inputa istinad var, onun focus metoduna müraciət edərək:

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

Düyməyə basın ve əmin olun ki, inputa fokus vurulur.

Bu dərsdə yazdığımız App komponentinin kodunu götürün ve elə edin ki, düyməyə kliklənəndə inputda fokusun vurulması ile yanaşı daxil etmə sahəsinin təmizlənməsi də baş versin. Bunun ucün inputun value xüsusiyyətindən istifadə edin.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČ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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et