De React-hooks, man bruger hver dag, grupperet efter job: holde state, køre effekter, memoizere arbejde, dele context og nå uden for render. Hver række parrer hooken med, hvad den er til.
En hook er en funktion, der lader en funktionskomponent trække på Reacts funktioner: state, livscyklus, context og performancejustering. De to regler: kald hooks på øverste niveau (aldrig i løkker eller betingelser), og kald dem kun fra React-funktioner. Resten er at vælge den rigtige hook til jobbet.
Referencetabel · 24 poster
React-hooksExplained
24 of 24 rows
State
Holder en enkelt værdi, der udløser et re-render, når den ændres.
Lokal komponentstate: formularfelter, toggles, tællere.
Holder state styret af en action-reducer, som en lille store.
State med flere relaterede felter eller komplekse overgange.
Holder en mutable værdi, der IKKE udløser et re-render.
Mutable containere, timere og direkte DOM-adgang via .current.
Effekter
Kører en sideeffekt efter render, med valgfri oprydning.
Hente data, abonnementer og synkronisering med et eksternt system.
Funktionen, som en effekt returnerer, kører før den næste effekt og igen ved unmount.
Rive abonnementer og timere ned eller afbryde en igangværende fetch.
Som useEffect, men affyres synkront efter DOM-mutation.
Læse eller skrive layout, før browseren tegner (toasts, tooltips).
Eventhandlere kører som svar på en brugerhandling; effekter kører efter render for at synkronisere.
Brugerforårsaget logik hører hjemme i en handler, render-forårsaget logik i en effekt.
I udvikling monteres komponenter to gange, så effekter kører, rydder op og kører igen.
Fange dobbelte abonnementer og manglende oprydning før produktion.
Ydeevne
Cacher en beregnet værdi, indtil dens dependencies ændres.
Undgå dyre genberegninger på tværs af renders; ændr bevidst en værdi i deps for at tømme cachen.
Cacher en funktionsreference, indtil dens dependencies ændres.
Stabile callbacks, der sendes til memoizerede children eller bruges som deps.
Springer re-render af en komponent over, hvis props er uændrede.
Tunge childkomponenter; giv en sammenligningsfunktion som andet argument, når overfladisk lighed ikke er nok (en HOC, ikke en hook).
Context og eksterne handles
Læser en contextværdi uden prop drilling.
Tema, locale eller en auth-bruger delt i hele træet.
Tilpasser den instans, en forælder ser gennem en ref.
Exponere et fokuseret API fra et child via forwardRef.
Concurrency og andet
Markerer et state-update som ikke-presserende, så brugerfladen forbliver responsiv.
Holde inputtet hurtigt, mens en tung liste re-renderer.
Udsætter en værdi, så updates kan afbrydes.
Debounce af dyre renders uden timere.
Genererer et stabilt, unikt id til accessibilityattributter.
Sammenkæde label og input på tværs af server- og clientrenders.
Læser et promise eller en context under render; den eneste hook, du kan kalde betinget.
Pakke et promise ud med Suspense eller læse context i en tidlig return.
Holder state styret af en formularaction, med et pending-flag inkluderet.
Formularsubmits, der returnerer fejl eller opdateret state til inline-visning.
Renderer en optimistisk værdi med det samme og falder tilbage til rigtig state, når handlingen er afsluttet.
Vise et like eller en sendt besked, mens dens serveranmodning er i gang.
Læser pending-tilstanden af den omgivende <form>, uden props.
En submitknap, der deaktiverer sig selv, mens dens overordnede formular sender.
Abonnerer på en store uden for React og læser ét konsistent snapshot.
Browser-API'er som online-status eller tredjeparts state-stores.
Kører før layouteffekter, lavet til at injicere CSS-in-JS-regler.
Stylebiblioteker, der skal indsætte regler, før layout læses.
Viser et eget label for en hooks interne state i React DevTools.
Mærke, hvad en custom hook indeholder, under debugging.
Din egen hook, der komponerer de indbyggede for at dele logik.
Genanvendelig statefuld adfærd som useFetch eller useMediaQuery.