Skip to content

React-hookit selitettynä

Arjessa käytettävät React-hookit, ryhmiteltyinä tehtävän mukaan: tilan hallinta, efektien ajo, laskentojen muistiinpano, kontekstin jakaminen ja renderöinnin ulkopuolelle ulottuminen. Jokainen rivi yhdistää hookin ja sen käyttötarkoituksen.

Hook on funktio, jonka avulla funktiokomponentti pääsee käsiksi Reactin ominaisuuksiin: tila, elinkaari, konteksti ja suorituskyvyn viritys. Kaksi sääntöä: kutsu hookeja ylimmällä tasolla (ei koskaan silmukoiden tai ehtojen sisällä) ja kutsu niitä vain React-funktioista. Loput on oikean hookin valitseminen tehtävään.

Viitetaulukko · 24 merkintää
24 of 24 rows
Tila
Pitää yhden arvon, joka laukaisee uudelleenrenderöinnin muuttuessaan.Komponentin paikallinen tila: lomakekentät, kytkimet, laskurit.
Pitää action-reducerin ohjaamaa tilaa, kuin pienen storen.Tila, jossa on useita toisiinsa liittyviä kenttiä tai monimutkaisia siirtymiä.
Pitää muuttuvan arvon, joka EI laukaise uudelleenrenderöintiä.Muuttuvat säiliöt, ajastimet ja suora DOM-pääsy .current-kentän kautta.
Efektit
Suorittaa sivuvaikutuksen renderöinnin jälkeen, valinnaisella siivouksella.Datan hakeminen, tilaaukset ja synkronointi ulkoisen järjestelmän kanssa.
Efektin palauttama funktio suoritetaan ennen seuraavaa efektiä ja vielä uudelleen unmount-vaiheessa.Tilausten ja ajastinten purkaminen tai kesken olevan haun peruuttaminen.
Kuten useEffect, mutta suoritetaan synkronisesti DOM-muutoksen jälkeen.Asettelun luku tai kirjoitus ennen kuin selain maalaa (toastit, työkaluvihjeet).
Tapahtumakäsittelijät suoritetaan vastauksena käyttäjän toimintaan; efektit suoritetaan renderöinnin jälkeen synkronointia varten.Käyttäjän aiheuttama logiikka kuuluu käsittelijään, renderöinnin aiheuttama efektiin.
Kehitystilassa mounttaa komponentit kahdesti, joten efektit suoritetaan, siivotaan ja suoritetaan uudelleen.Kaksoistilausten ja puuttuvan siivouksen paljastaminen ennen tuotantoa.
Suorituskyky
Välimuistittaa lasketun arvon, kunnes sen riippuvuudet muuttuvat.Kalliiden uudelleenlaskujen välttäminen renderöintien välissä; tyhjennä välimuisti tahallaan muuttamalla yhtä riippuvuuden arvoa.
Välimuistittaa funktioreferenssin, kunnes sen riippuvuudet muuttuvat.Vakaat callbackit, jotka annetaan memoisoiduille lapsille tai käytetään riippuvuuksina.
Ohittaa komponentin uudelleenrenderöinnin, jos sen propsit eivät ole muuttuneet.Raskaat lapsikomponentit; anna vertailufunktio toisena argumenttina, kun matala vertailu ei riitä (HOC, ei hook).
Konteksti ja ulkoiset kahvat
Lukee kontekstin arvon ilman prop-drillingiä.Teema, locale tai kirjautunut käyttäjä jaettuna koko puuhun.
Mukauttaa instanssia, jonka vanhempi näkee refin läpi.Keskittyneen API:n paljastaminen lapsesta forwardRef:n avulla.
Rinnakkaisuus ja muut
Merkitsee tilapäivityksen ei-kiireelliseksi, jotta UI pysyy vastaanottavaisena.Syötteen pitäminen napakkana, kun raskas lista renderöityy uudelleen.
Lykkää arvoa, jotta päivitykset voidaan keskeyttää.Kalliiden renderöintien debouncointi ilman ajastimia.
Tuottaa vakaan, uniikin id:n saavutettavuusattribuuteille.Labelin ja inputin yhdistäminen palvelin- ja asiakaspuolen renderöinneissä.
Lukee promisen tai kontekstin renderöinnin aikana; ainoa ehdollisesti kutsuttava hook.Promisen purkaminen Suspensen kanssa tai kontekstin lukeminen aikaisessa paluussa.
Pitää lomakeaktion ohjaamaa tilaa, pending-lippu mukaanlukien.Lomakkeen lähetykset, jotka palauttavat virheitä tai päivitettyä tilaa näytettäväksi sivulla.
Renderöi optimistisen arvon heti ja palaa todelliseen tilaan, kun action valmistuu.Tykkäyksen tai lähetetyn viestin näyttäminen, kun sen palvelinpyyntö on vielä kesken.
Lukee ympäröivän <form>:in pending-tilan ilman propseja.Lähetyspainike, joka poistuu käytöstä, kun sen vanhempi lomake lähetetään.
Tilaa Reactin ulkopuolinen store ja lukee yhden johdonmukaisen tilannekuvan.Selainrajapinnat kuten verkkotila tai kolmannen osapuolen tilastoret.
Suoritetaan ennen layout-efektejä; tehty CSS-in-JS-sääntöjen injektointiin.Tyylikirjastot, joiden on lisättävä säännöt ennen asettelun lukemista.
Näyttää mukautetun nimikkeen hookin sisäisestä tilasta React DevToolsissa.Oman hookin sisällön nimeäminen debuggauksen aikana.
Oma hookkisi, joka yhdistää sisäänrakennettuja hookeja logiikan jakamiseksi.Uudelleenkäytettävä tilallinen toiminta kuten useFetch tai useMediaQuery.