Umieszczanie Context w useContext

Kredyty graficzne dla Aditya Loshali i freeCodeCamp

Jestem wielkim fanem Reacta i React Hooks.

Zanim przewrócisz oczami i powiesz „To nie kolejny blog React Hooks”, wysłuchaj mnie.

Nic dziwnego, że standard branżowy odszedł od komponentów opartych na klasach i cykli życia. W tym poście nie będę omawiać komponentów opartych na funkcjach i komponentach klasowych - możesz przeczytać dziesiątki blogów na ten temat w Dev i Medium .

Chciałem jednak rzucić światło na jeden szczególnie przydatny hook, którego nauczyłem się, a jest nim useContext.

Co to jest useContext?

useContext to Hook React, który pozwala nam mieć i używać globalnego zarządzania stanem bez potrzeby stosowania komponentów klasowych.

Dla przypomnienia, komponenty, wirtualny DOM, rekwizyty i stan są kluczowymi cechami tego, co czyni React tak wyjątkowym i popularnym. Stan to sposób, w jaki śledzimy, w jaki sposób elementy i komponenty zostały renderowane i współdziałane z interfejsem użytkownika.

Na przykład, powiedzmy, że wypełniasz ankietę. Po kliknięciu pola wyboru może pojawić się zmienna, która śledzi, czy kliknąłeś to pole, czy nie. W przypadku kliknięcia przez Ciebie lub innego użytkownika stan komponentu - w tym przypadku pole wyboru - zostanie ustawiony na odwrotny od tego, jaki był poprzednio, a więc z false (nie został kliknięty) na true (obecnie jest ). Po odznaczeniu pola stan powinien być teraz ustawiony na wartość przeciwną do klikniętej - teraz, fałsz.

import {useState} from "react"
export default function Survey(){
  const [clicked, setClicked] = useState(false)
const clickHandler = () => {
    setClicked(!clicked)
}
return (
    <>
<label>Do you want to take our customer survey for a chance to win $10,000?</label>
    <input type="checkbox" onClick={clickHandler}></input>
</>
  )

Ogólnie rzecz biorąc, zarządzanie stanem jest przydatne, ale w Reakcie może być niezwykle złożone. Stan jest aktualizowany asynchronicznie w JavaScript, co oznacza, że ​​kod może działać, ale stan nie jest aktualizowany i rozpoznawany jako reszta kodu. Dlatego istnieje tak wiele metod zarządzania stanem, takich jak Redux, framework React, który zarządza stanem za pomocą magazynu i reduktorów, więc tylko niezbędne komponenty będą miały dostęp do wyświetlania i zmiany stanu (który jest ustawiony w sklepie ). Jednak Redux może być trudny do wdrożenia i debugowania, a nawet w tym konkretnym frameworku jest dużo miejsca na poprawę, jeśli chodzi o zarządzanie stanem.

W momencie publikacji tego, Recoil.js jest „eksperymentalną biblioteką zarządzania stanem dla aplikacji React”, zgodnie z GitHub . Ten ekscytujący framework Redux, wydany w 2020 roku, ma usprawnić zarządzanie stanem. To pokazuje, jak ważne i złożone jest zarządzanie stanem dla naszego Frontendu.

Czym różni się od useState?

useState i useContext mogą wydawać się podobne, ponieważ oba są związane z zarządzaniem stanem. useState jest moim zdaniem mniej stabilnym sposobem na utrzymanie stanu. Zaletą useContext jest to, że możemy utworzyć instancję zmiennej używanej w useContext i zaimportować ją bezpośrednio do dowolnego komponentu. Ponieważ jest to globalne zarządzanie stanem, nie możemy modyfikować tego, co jest ustawione w useContext. Jednak w przypadku useState musielibyśmy przekazać jego wartość jako rekwizyty, które można łatwo zmienić i utracić po odświeżeniu lub ponownym renderowaniu.

Nie korzystałem zbyt często z useContext. Jednak widzenie go w użyciu sprawiło, że doceniłem, jak przydatny jest ten konkretny hak reakcyjny. Praca ze stanem w React może być trudna, a useContext jest dobrym medium między komponentami klas a Redux. Jest to łatwe w obsłudze i zrozumiałe.

To powiedziawszy, zarządzanie państwem jest złożone, dlatego stale tworzone są nowe technologie w celu ulepszenia sposobu, w jaki je przechowujemy. Sam useContext nie jest pozbawiony wad, ale ogólnie nie mogę się doczekać użycia tego konkretnego React Hook w moich przyszłych produktach.

Dziękuję za przeczytanie. Gorąco zachęcam do zapoznania się z poniższymi linkami, jeśli chcesz dowiedzieć się więcej o useContext.

Zasoby

Suggested posts

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Unikanie niszczycielskich konsekwencji udaru mózgu: nauka z rodzinnej podróży.

Wstęp Udar to nagły przypadek medyczny, który może dotknąć każdego w dowolnym momencie. Występuje, gdy przepływ krwi do części mózgu zostaje zakłócony, co prowadzi do nagłej utraty funkcji mózgu.

Moje najczęściej używane zasoby dotyczące kodowania

Moje najczęściej używane zasoby dotyczące kodowania

W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.

Related posts

Nauka w tygodniu pracy ma większe znaczenie niż myślisz

Nauka w tygodniu pracy ma większe znaczenie niż myślisz

Często mamy trudności z wdrożeniem tego, co wiemy, że jest dla nas dobre. Od mówienia drugiej osobie, że ją kochamy, po pamiętanie, by mówić jak pirat, zawsze znajdą się tacy, którzy twierdzą, że dzień, tydzień lub miesiąc wydarzeń nie jest potrzebny, ponieważ już to robią.

Czy sztuka jest kiedykolwiek apolityczna?

Czy sztuka jest kiedykolwiek apolityczna?

Wczoraj zamknęliśmy drzwi tegorocznego Konkursu Piosenki Eurowizji błyskotliwym, chaotycznym wielkim finałem, w którym szwedzka piosenkarka Loreen zabrała do domu trofeum, stając się pierwszą kobietą, która wygrała dwa razy i przywracając koronę Szwecji 50 lat po tym, jak ABBA wygrała konkurs z „Waterloo”. Stali się jednym z największych zespołów w kanonie muzyki pop.

Dwa lata projektowania – dobre, złe i brzydkie…

Dwa lata projektowania – dobre, złe i brzydkie…

„Hej, Siri, zagraj w Me Dive autorstwa Olivii Dean”. W maju 2021 rozpocząłem staż w Future Academy Africa w Akure w Nigerii.

Wyzwanie czytelnicze Goodreads jest toksyczne

Wyzwanie czytelnicze Goodreads jest toksyczne

Swędzenie w mojej dłoni rozszerzyło się, gdy targowałem się z miejscowym księgarzem o kolejną książkę. Ta książka, podobnie jak pozostałe, które ostatnio kupiłem, znalazłaby swój tron ​​na moim stosie „Do przeczytania” (TBR); a mimo to kupiłem.