Vad är React -krokar och hur fungerar de?
Lämna ett meddelande
Hej där! Som krokleverantör är jag super upphetsad att prata om React Hooks idag. React Hooks har varit ett spel - växlare i världen av React -utveckling, och jag tycker att det är riktigt coolt att förstå hur de fungerar. Så låt oss dyka rätt in!
Vad är React Hooks?
Första saker först, vad i all värld är reageringskrokar? Tja, React -krokar är funktioner som låter dig "ansluta" reagera tillstånd och livscykelfunktioner från funktionskomponenter. Innan krokar kom med, om du ville använda tillstånd eller andra React -funktioner i en komponent, var du tvungen att använda klasskomponenter. Men med krokar kan du göra allt det i en funktionskomponent, vilket är väldigt mer enkelt och lättare att hantera.
Tänk på krokar som små verktyg som du kan plocka upp och använda i dina React -funktionskomponenter. De ger dig tillgång till saker som statlig hantering, sidoeffekter (som data som hämtar eller prenumererar på händelser) och andra reageringsfunktioner utan att behöva skriva en klass.
En av de mest grundläggande och vanligt använda krokarna ärUSSstatekrok. Det låter dig lägga till tillstånd i en funktionskomponent. Låt oss säga att du bygger en enkel motapp. MedUSSstate, du kan hantera räkningsvärdet direkt i din funktionskomponent.
import react, {usestate} från 'react'; funktionsräknare () {const [count, setCount] = usestate (0); returnera (<div> <p> du klickade {count} gånger </p> <knapp onclick = {() => setCount (count + 1)}> klicka på mig </knapp> </div>); } Exportera standardräknare;
I det här exempletUSSstateär en krok som tar ett initialvärde (i detta fall,0) och returnerar en matris med två element. Det första elementet (räkna) är det nuvarande tillståndsvärdet och det andra elementet (setcount) är en funktion som du kan använda för att uppdatera staten.
Hur fungerar React Hooks?
Låt oss nu gräva in hur dessa krokar faktiskt fungerar. Reactkrokar förlitar sig på ett par viktiga regler.
Regel 1: Ring bara krokar på toppnivå
Du kan inte ringa krokar i slingor, förhållanden eller kapslade funktioner. Krokar måste kallas i exakt samma ordning varje gång en komponent gör. React håller reda på krokarna du kallar i en komponent, och om du kallar dem ur ordning kan det leda till några riktigt konstiga buggar.
Till exempel är detta dåligt:
Funktion BadComponent (rekvisita) {if (props.isVisible) {// BAD! Detta bryter mot regelkonst [värde, setValue] = usestate ('standard'); return <div> {värde} </div>; } returnera null; }
Och det här är bra:
funktion goodComponent (rekvisita) {const [värde, setValue] = usestate ('standard'); if (props.IsVisible) {return <div> {värde} </div>; } returnera null; }
Regel 2: Ring bara krokar från React -funktioner
Du kan bara ringa krokar från React -funktionskomponenter eller anpassade krokar. Du kan inte ringa dem från vanliga JavaScript -funktioner. Detta säkerställer att krokar används i samband med React -komponenter.
Olika typer av React -krokar
Det finns flera byggda - i krokar i React, och de serverar var och en olika syften.
användbar
DeanvändbarHook används för sidoeffekter i en komponent. Sidoeffekter är saker som data som hämtar, ställer in ett prenumeration eller manuellt ändra DOM i en React -komponent.
import react, {usestate, useeffect} från 'react'; funktion datafetcher () {const [data, setData] = usestate (null); UseEffect (() => {// Simulering av data som hämtar hämtning ('https://api.example.com/data') .Then (Response => Response.json ()) .Then (data => setData (data)); // cleanup -funktion return () => {// detta kommer att köra när komponenten unmonteras}; returnera (<div> {data? <p> {data.message} </p>: <p> Loading ... </p>} </div>); } Exportera standarddatafetcher;
I det här exempletanvändbarHook körs efter varje rendering som standard. Men om du passerar en tom matris som det andra argumentet kommer det bara att köras en gång, liknandeComponentDidMounti en klasskomponent. Den valfria saneringsfunktionen används för att rensa upp alla resurser som inrättades i effekten, som att avbryta ett prenumeration.
usecontext
DeusecontextHook låter dig komma åt sammanhanget i en funktionskomponent. Kontext är ett sätt att skicka data genom komponentträdet utan att behöva skicka rekvisita manuellt på alla nivåer.
import react, {createContext, usEcontext} från 'react'; const myContext = createContext (); funktionsförälder () {return (<myContext.Provider Value = "Hello from Context"> <Child /> </MyContext.Provider>); } function child () {const contextValue = usEcontext (myContext); return <p> {contextValue} </p>; } Exportera standardförälder;
I det här exempletFörälderKomponent ger ett värde till sammanhanget ochBarnKomponent kan komma åt det värdet med hjälp avusecontextkrok.
Anpassade krokar
Som krokleverantör vill jag också nämna anpassade krokar. Anpassade krokar är ett bra sätt att återanvända statlig logik mellan komponenter. Du kan skapa dina egna krokar genom att extrahera krokrelaterad logik i en separat funktion.
Låt oss säga att du har flera komponenter som behöver hämta data från ett API. Du kan skapa en anpassad krok för det.
import react, {usestate, useeffect} från 'react'; Funktion UsedataFetching (url) {const [data, setData] = usestate (null); const [Loading, SetLoading] = usestate (true); UseEffect (() => {setLoading (true); hämta (url). returnera {data, ladda}; } function componenta () {const {data, loading} = wyndeatafetching ('https://api.example.com/dataa'); returnera (<div> {lastning? <p> Loading ... </p>: <p> {data.message} </p>} </div>); } function componentb () {const {data, loading} = användeAtAfetching ('https://api.example.com/datab'); returnera (<div> {lastning? <p> Loading ... </p>: <p> {data.message} </p>} </div>); }
I det här exempletbegagnade fönstrenAnpassad krok kapslar in logiken för att hämta data från ett API. BådeföreningochKomponentbkan använda denna anpassade krok för att hämta olika data.
Våra krokprodukter
Nu, som en krokleverantör, vill jag också berätta om några av våra fantastiska krokprodukter. Vi har ett brett utbud av krokar för olika applikationer. Till exempel vårBogserkrokär perfekt för att bogsera tunga laster. Den är tillverkad av högkvalitativa material och är mycket hållbara.
Om du behöver en krok som kan svängas och knäppas lätt, vårSnap Swivel J Hookär ett bra val. Det är väldigt mångsidigt och kan användas i många olika scenarier.
Och för dem som behöver en platt j - formad krok för tillbehör, vårTillbehör Metal Flat J Hookär precis vad du letar efter. Det är starkt och kan hålla olika tillbehör säkert.
Slutsats och uppmaning till handling
Reactkrokar är ett fantastiskt tillskott till React -ekosystemet. De gör det lättare att skriva och hantera funktionskomponenter, och de ger ett mer intuitivt sätt att hantera tillstånd och sidoeffekter. Oavsett om du är nybörjare eller en erfaren React -utvecklare, kan förståelse och använda krokar verkligen jämna ut dina utvecklingsförmågor.


Om du är intresserad av våra krokprodukter skulle vi gärna prata med dig. Oavsett om du letar efter en enda krok eller behöver en bulkorder, är vi här för att hjälpa. Nå bara till oss så diskuterar vi gärna dina krav och ger dig de bästa lösningarna.
Referenser
- Reagera officiell dokumentation
- Olika online -tutorials och bloggar






