Skip to content

React-hooks förklarade

De React-hooks som används dagligen, grupperade efter uppgift: hålla state, köra effekter, memoisera arbete, dela kontext och nå utanför renderingen. Varje rad parar ihop hooken med vad den är till för.

En hook är en funktion som låter en funktionskomponent ta del av Reacts funktioner: state, livscykel, kontext och prestandajustering. De två reglerna: anropa hooks på toppnivå (aldrig i loopar eller villkor) och anropa dem endast från React-funktioner. Resten är att välja rätt hook för jobbet.

Referenstabell · 24 poster
24 of 24 rows
State
Håller ett enda värde som triggar en omrendering när det ändras.Lokalt komponent-state: formulärfält, toggle:ar, räknare.
Håller state som drivs av en action-reducer, som en liten store.State med flera relaterade fält eller komplexa övergångar.
Håller ett föränderligt värde som INTE triggar en omrendering.Föränderliga behållare, timers och direkt DOM-åtkomst via .current.
Effekter
Kör en bieffekt efter renderingen, med valfri städning.Hämtning av data, prenumererationer och synkronisering mot ett externt system.
Funktionen som en effekt returnerar körs före nästa effekt och igen vid avmontering.Nedrivning av prenumererationer och timers, eller avbrott av en pågående hämtning.
Som useEffect, men avfyras synkront efter DOM-ändringen.Läsa eller skriva layout innan webbläsaren ritar (toasts, tooltips).
Eventhanterare körs som svar på en användarhandling; effekter körs efter renderingen för att synka.Användarorsakad logik hör hemma i en hanterare, renderorsakad logik i en effekt.
I utvecklingsläge monteras komponenter två gånger så att effekter körs, städar upp och körs igen.Fångar dubbla prenumererationer och saknad städning innan produktion.
Prestanda
Cachelagrar ett beräknat värde tills beroendena ändras.Undvika dyra omberäkningar över renderingar; ändra ett värde i beroendena med vilja för att rensa cachen.
Cachelagrar en funktionsreferens tills beroendena ändras.Stabila callbacks som skickas till memoiserade barn eller används som beroenden.
Hoppar över omrendering av en komponent vars props är oförändrade.Tunga barnkomponenter; skicka med en jämförelsefunktion som andra argument när ytlig likhet inte räcker (en HOC, inte en hook).
Kontext och externa handtag
Läser ett kontextvärde utan prop-drilling.Tema, locale eller en inloggad användare som delas genom trädet.
Anpassar instansen en förälder ser genom en ref.Exponera ett fokuserat API från ett barn via forwardRef.
Samtidighet och övrigt
Markerar en state-uppdatering som icke-brådskande så att gränssnittet förblir responsivt.Hålla inmatningen kvick medan en tung lista omrenderas.
Skjuter upp ett värde så att uppdateringar kan avbrytas.Debounce av dyra renderingar utan timers.
Genererar ett stabilt unikt id för tillgänglighetsattribut.Koppla ihop label och input över server- och klientrenderingen.
Läser ett promise eller en kontext under renderingen; den enda hook du kan anropa villkorligt.Packa upp ett promise med Suspense, eller läsa kontext inuti en tidig return.
Håller state som drivs av en formulärhandling, med en pending-flagga inkluderad.Formulärskick som returnerar fel eller uppdaterad state att visa inline.
Renderar ett optimistiskt värde på en gång och faller tillbaka på riktigt state när handlingen är klar.Visa en like eller ett skickat meddelande medan serverförfrågan pågår.
Läser pending-tillståndet för det omslutande <form>, utan props.En skicka-knapp som avaktiverar sig medan dess överordnade formulär skickas.
Prenumererar på en store utanför React och läser ett konsekvent ögonblicksvärde.Webbläsar-API:er som online-status, eller tredjeparts state-stores.
Körs före layouteffekter, gjort för att injicera CSS-in-JS-regler.Stilbibliotek som måste infoga regler innan layout läses.
Visar en egen etikett för en hooks interna state i React DevTools.Etikettera vad en egen hook innehåller vid felsökning.
Din egen hook som komponerar de inbyggda för att dela logik.Återanvändbart state-beteende som useFetch eller useMediaQuery.