Ostatnio pisałem o haczyku useState, więc teraz wyjaśnię, co robi haczyk useEffect w React. Hak useEffect został opracowany w celu rozwiązania niektórych wyzwań związanych z metodami cyklu życia komponentów klasy ES6. Jeśli rozumiesz metody cyklu życia z komponentów klasy, ten zaczep jest odpowiednikiem metod cyklu życia componentDidMount, componentDidUpdate i componentDidUnmount. Posłużę się przykładem, który pokaże, w jaki sposób hooki mogą zająć miejsce tych metod cyklu życia.
Przede wszystkim przyjrzyjmy się, jak wygląda useEffect. Ten hak to funkcja, która przyjmuje dwa argumenty. Pierwszym z nich jest wywołanie zwrotne z logiką efektów ubocznych. Drugi to opcjonalna tablica zależności. Hak useEffect wykonuje wywołanie zwrotne tylko wtedy, gdy zależności zmieniają się między renderowaniami. Pozwala to kontrolować, kiedy pojawia się efekt uboczny. Przyjrzyjmy się, jak wyglądają zależności i co robią.
Jeśli nie podasz tablicy zależności, efekt uboczny będzie działał po każdym renderowaniu.
Jeśli podasz pustą tablicę, efekt uboczny zostanie uruchomiony dopiero po początkowym renderowaniu, podobnie jak w przypadku componentDidMount.
Jeśli podasz wartość stanu lub właściwości w tablicy, efekt uboczny jest uruchamiany za każdym razem, gdy zmienia się zależność, podobnie jak w przypadku componentDidUpdate.
Zróbmy przykład z prostym programem. Mój komponent będzie miał przycisk, który zwiększy licznik. Gdy licznik osiągnie określoną liczbę, zmieni się tytuł dokumentu. Najpierw skonfigurujmy komponent z minimum. Będzie miał stan licznika i funkcję obsługi.
Jak widać, mam już funkcję useEffect na tym komponencie. W przypadku komponentów początkowe renderowanie „Zamontowany” jest rejestrowane w konsoli. Po kliknięciu przycisku liczba zwiększa się o 1. Idealnie, powiedzmy teraz, że chcemy rejestrować coś za każdym razem, gdy komponent jest renderowany, ale nie podczas pierwszego renderowania. Najlepszą rzeczą w haczykach jest to, że możesz mieć wiele haczyków w tym samym komponencie. Będę miał kilka instrukcji warunkowych do kontrolowania, kiedy efekt zostanie uruchomiony. To będzie wyglądać tak.
Utworzyłem zmienną ustawioną na false, która uniemożliwi uruchomienie efektu przy pierwszym renderowaniu. Po tym za każdym razem, gdy licznik zostanie zwiększony, będziesz mógł zobaczyć, że konsola drukuje poprawnie. Dzieje się tak, ponieważ ten hak nie miał argumentu zależności, więc jest renderowany za każdym razem, gdy zmienia się stan. Teraz zaimplementujmy filtr, który zmieni tytuł dokumentu po osiągnięciu określonej liczby w liczniku. W tym celu będę musiał użyć innego haka stanu i ustawić inną instrukcję warunkową.
Teraz, gdy licznik osiągnie 11, tytuł dokumentu zostanie zaktualizowany. Dzieje się tak, ponieważ gdy warunek zostanie spełniony, wartość stanu filtra zostaje zmieniona na true i przechwycenie jest wykonywane. Jest jeszcze jedna rzecz, którą możemy zrobić z useEffect. Niektóre efekty uboczne wymagają oczyszczenia, na przykład czyszczenie liczników czasu. Jeśli wywołanie zwrotne zwróci funkcję, przechwyt uzna to za czyszczenie efektu.
Zobaczysz, że czyszczenie będzie uruchamiane po każdym renderowaniu. Jest to podobne do tego, co możesz zrobić w komponentach klasy za pomocą componendDidUnmount.
Świetnie się bawiłem ucząc się tego haka. To jeden z najważniejszych haczyków, a także jeden z trudniejszych. Jednak po kilku ćwiczeniach ma to sens. Cóż, to wszystko dla useEffect. Udanego kodowania!
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.
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.
To, co stare, jest teraz znowu nowe, a to, co kiedyś było lśniącą, błyszczącą rzeczą, teraz wydaje się nudne. Nie mówię o dżinsach JNCO, które powróciły wśród fajnych dzieciaków w śródmieściu wraz z innymi modami późnych lat 90.
„Będzie mnie chronił, gdy będę w niebezpieczeństwie. Ukryje mnie w swoim namiocie.
W dzisiejszym dynamicznym i konkurencyjnym świecie kariera odgrywa znaczącą rolę w rozwoju osobistym, stabilności finansowej i ogólnej satysfakcji z życia. Jednak wiele osób wpada w nieustający cykl stagnacji i niezadowolenia, stopniowo marnując swoje życie zawodowe.
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ą.