Skip to content

React Hooks explicate

Hook-urile React folosite zi de zi, grupate după rol: păstrează stare, rulează efecte, memoizează calcule, distribuie context și iese din render. Fiecare rând asociază hook-ul cu scopul lui.

Un hook este o funcție care permite unui component-funcție să acceseze funcționalitățile React: stare, ciclu de viață, context și optimizare a performanței. Cele două reguli: apelează hook-urile la nivelul de sus (niciodată în bucle sau condiții) și apelează-le doar din funcții React. Restul constă în alegerea hook-ului potrivit pentru sarcină.

Tabel de referință · 24 intrări
24 of 24 rows
Stare
Păstrează o singură valoare care declanșează un re-render când se schimbă.Starea locală a componentei: câmpuri de formular, comutatoare, contoare.
Păstrează o stare condusă de un reducer de acțiuni, ca un mic store.Stare cu mai multe câmpuri corelate sau tranziții complexe.
Păstrează o valoare mutabilă care NU declanșează un re-render.Containere mutabile, timere și acces direct la DOM prin .current.
Efecte
Rulează un efect secundar după render, cu curățare opțională.Preluarea datelor, abonamente și sincronizarea cu un sistem extern.
Funcția returnată de un efect rulează înaintea următorului efect și din nou la demontare.Dezabonări și oprirea timerelor, sau anularea unui fetch în curs.
Ca useEffect, dar se declanșează sincron după mutarea DOM-ului.Citirea sau scrierea layoutului înainte ca browserul să deseneze (toasturi, tooltipuri).
Handlerele de evenimente rulează ca răspuns la o acțiune a utilizatorului; efectele rulează după render pentru sincronizare.Logica cauzată de utilizator aparține unui handler, cea cauzată de render unui efect.
În dezvoltare montează componentele de două ori, astfel încât efectele rulează, se curăță și rulează din nou.Depistarea abonamentelor duble și a curățării lipsă înainte de producție.
Performanță
Memorează o valoare calculată până se schimbă dependențele.Evitarea recalculelor scumpe între renderuri; schimbă intenționat o valoare din dependențe pentru a invalida cache-ul.
Memorează o referință de funcție până se schimbă dependențele.Callback-uri stabile trimise la copii memoizați sau folosite ca dependențe.
Sare peste re-renderul unui component ai cărui props nu s-au schimbat.Componente-copil grele; transmite o funcție de comparație ca al doilea argument când egalitatea superficială nu ajunge (un HOC, nu un hook).
Context și handle-uri externe
Citește o valoare de context fără prop drilling.Temă, locale sau un utilizator autentificat, partajate în arbore.
Personalizează instanța pe care o vede un părinte printr-un ref.Expunerea unui API concentrat dintr-un copil prin forwardRef.
Concurență și altele
Marchează o actualizare de stare ca neurgentă, astfel încât UI-ul rămâne receptiv.Menținerea inputului rapid în timp ce o listă grea se re-randează.
Amână o valoare astfel încât actualizările pot fi întrerupte.Debounce pentru renderuri scumpe fără timere.
Generează un id unic stabil pentru atributele de accesibilitate.Legarea label și input între renderul de server și cel de client.
Citește un promise sau un context în timpul renderului; singurul hook pe care îl poți apela condiționat.Despachetarea unui promise cu Suspense sau citirea contextului într-un return timpuriu.
Păstrează o stare condusă de o acțiune de formular, cu un indicator pending inclus.Trimiteri de formulare care returnează erori sau stare actualizată de afișat inline.
Randează imediat o valoare optimistă, apoi revine la starea reală când acțiunea se încheie.Afișarea unui like sau a unui mesaj trimis în timp ce cererea către server e în curs.
Citește starea pending a <form>-ului înconjurător, fără props.Un buton de trimitere care se dezactivează cât formularul părinte se trimite.
Se abonează la un store din afara React și citește un snapshot consecvent.API-uri de browser precum starea online sau store-uri de stare ale terților.
Rulează înaintea efectelor de layout, creat pentru injectarea de reguli CSS-in-JS.Biblioteci de stiluri care trebuie să insereze reguli înainte de citirea layoutului.
Afișează o etichetă proprie pentru starea internă a unui hook în React DevTools.Etichetarea a ceea ce ține un hook custom în timpul depanării.
Hook-ul tău propriu care compune hook-urile integrate pentru a partaja logică.Comportament cu stare reutilizabil, precum useFetch sau useMediaQuery.