⊗jsrtPmHkURf 12 of 47 menu

Huku useRef për të punuar me ref në React

Në këtë mësim do të punojmë me ref. Për qartësi le të shqyrtojmë funksionimin e hukut useRef në krahasim me hukun useState.

Le të krijojmë një komponent me një buton:

return ( <div> <button> state click </button> </div> );

Le të importojmë në komponent useState:

import { useState } from 'react';

Dhe le të krijojmë state state:

const [state, setState] = useState(0);

Dhe tani le të bëjmë që me klikim në buton state ynë të rritet me 1. Vlerën e state do ta shfaqim direkt në tekstin e butonit:

<button onClick={handleStateClick}> state click: {state} </button>

Le të përshkruajmë funksionin për trajtimin e klikimit në butonin handleStateClick:

function handleStateClick() { setState(state + 1); }

Le të klikojmë butonin dhe do të shohim se si rritet vlera e state.

Dhe tani le të krijojmë komponentin App, por duke përdorur jo state, por ref.

Për fillim, le të importojmë në komponent useRef:

import { useRef } from 'react';

Dhe le të krijojmë ref ref. Si rezultat i tij, huku useRef kthen një objekt ref me një vetëm property current, e cila do të na interesojë në të ardhmen. Le të vendosim vlerën e saj fillestare në 0:

const ref = useRef(0);

Le të vendosim në buton trajtuesin e klikimit. Mbani mend se ne duhet të lexojmë/ndryshojmë jo vetë ref, por property-në e tij current:

<button onClick={handleRefClick}> ref click: {ref.current} </button>

Le të shtojmë funksionin për trajtimin e klikimit në butonin tonë. Këtu do të rrisim current me 1, si në shembullin e mëparshëm me state. Ndryshe nga state, ku kërkohet funksioni setState për ndryshimin e vlerës së tij, me property-në e ref ne punojmë direkt:

function handleRefClick() { ref.current = ref.current + 1; }

Tani le të klikojmë butonin tonë. Dhe çfarë shohim? Me klikim në të, siç ishte fillimisht 0, ashtu nuk ndryshon.

Ju, sigurisht, mund të filloni të dyshoni që vlera në përgjithësi ndryshon. Le ta kontrollojmë këtë. Për këtë në funksionin e trajtuesit të klikimit le të shtojmë edhe një rresht kod me shfaqjen e vlerës current në konsol:

function handleRefClick() { ref.current = ref.current + 1; console.log('ref click: ' + ref.current); }

Dhe tani, duke hapur konsolën në shfletues, përsëri të klikojmë butonin dhe do të bindemi që vlera me të vërtetë ndryshon me çdo klikim dhe nuk ka mashtrim.

Tani ne shohim se ndryshe nga state, ndryshimi i vlerës së ref nuk shkakton renderimin e komponentit. Prandaj ne çdo herë në tekstin e butonit shohim vlerën fillestare 0.

Kështu, nëse të dhënat tuaja përdoren për renderim, atëherë ruajini ato në state, por nëse nuk keni nevojë për renderim, në këtë rast përdorimi i ref mund të jetë më efikas.

Le të ketë në komponentin tuaj një paragraf me tekst 'text' dhe një buton. Bëni që çdo herë me klikim në buton në fund të tekstit të paragrafit të shtohet një pikëçuditëse. Bëni këtë duke përdorur state.

Krijoni një komponent App, por në vend të state tani përdorni ref. Binduni që me klikim në buton teksti i paragrafit nuk do ndryshojë. Shtoni gjithashtu shfaqjen e tekstit të paragrafit në konsol, hapeni atë dhe binduni që në fakt teksti ndryshon.

Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo