Stan jest kluczową koncepcją i reaguje, dlatego ważne jest dla mnie, abyś zrozumiał, jak to
działa.
U. S. stan to sposób zarządzania stanem i komponentami funkcjonalnymi, a stan może być dowolny.
To nie musi być tablica.
Może to być jakiś tekst, liczba, obiekt, tablica, wartość logiczna, cokolwiek podobnego.
Użycie stanu zawsze zwraca tablicę z dwoma elementami.
Bez względu na swój status, jeśli stan jest stanem bezużytecznym, nadal zwraca tablicę z dokładnie dwoma
elementami.
Ponieważ wtedy pierwszym elementem jest zawsze twoja najnowsza migawka stanu.
Drugi element to funkcja, która pozwala aktualizować migawkę stanu za każdym razem, gdy aktualizujesz
migawkę stanu.
React zrobi dwie rzeczy.
Zaktualizuje te wewnętrznie przechowywane dane stanu.
Na przykład tutaj, kiedy dodamy nasz pierwszy nowy cel, zastąpi on stan początkowy naszym
nowym stanem.
W tym przypadku z nową tablicą, którą stworzyliśmy za pomocą Concat.
A kiedy zaktualizuje dane wewnętrznie, ponownie wywoła tę funkcję komponentu i wykona
całą funkcję.
I dlatego wszystkie ponownie renderowały ten J jako kod X.
Teraz pod maską nie będzie renderować całej domeny.
Po prostu sprawdzi, które części DOM wymagają aktualizacji, ale dokona ponownej oceny całego komponentu.
Oznacza to również oczywiście, że ponownie wykonuje stan użycia, ale wewnętrzny stan użycia działa tak, że inicjuje
stan ustalony tylko wtedy, gdy komponent jest renderowany po raz pierwszy, a następnie Rehren
poddaje recyklingowi.
Po prostu wyciąga migawkę najnowszego stanu i w zasadzie ignoruje ustawioną tutaj wartość początkową.
Tak działa stan.
Teraz ważne jest, aby zrozumieć, że ten sposób aktualizacji naszego osiedla w tym scenariuszu nie jest
najlepszym możliwym sposobem.
Tak powielone i skomentowane.
Czy nadal mieliśmy to dla odniesienia?
Ale widzimy też lepsze podejście.
To podejście wyraźnie działa.
I w większości przypadków będzie działać.
Ale musisz być świadomy, że cały ten stan aktualizuje część renderowania reagowania.
Czy koniec nie jest zarządzany przez zareagować.
A kiedy zasób i oświadczysz, że nie wstrzyma wszystkiego i natychmiast ponownie uruchom aplikację.
Zamiast tego zaplanowano aktualizację stanu.
A jeśli masz aplikację z dużą ilością bieżących aktualizacji stanu i wykonywanych jest wiele pracy,
co nie jest przypadkiem i dotyczy aplikacji, ale może być nią i innymi aplikacjami, aktualizacja
stanu może zostać odroczona o kilka milisekund.
Oznacza to, że faktycznie, jeśli użytkownik kliknie, doda złoto wiele razy, podstawowy Skold, który jest obecnie renderowany na
ekranie, może nie być naszym najnowszym stanem, ponieważ nie wszystkie aktualizacje stanu mogły zostać
jeszcze przetworzone.
Dlatego istnieje lepsza forma aktualizacji tego niż przekazywanie naszych danych nowego stanu w celu ustalenia celów kursu.
Możesz przekazać funkcję ustawiania celów kursu, funkcję, która odbiera najnowsze cele stanu przed kursem i musi
zwrócić nową migawkę stanu i dobrze reagować.
Następnie zaplanuj wszystkie te wywołania funkcji i zagwarantuj, że zostaną one wykonane we
właściwej kolejności, aby nawet jeśli aktualizacja stanu została odroczona do czasu ich aktualizacji po wykonaniu, gwarantuje
to również wykonanie pierwszej.
A potem tutaj po prostu Darfor za złoto przed powrotem do kursu, który wciąż nie jest nowym
celem.
To da taki sam wynik jak poprzednio w tej aplikacji.
W tej prostej aplikacji takie podejście byłoby w porządku.
Zasadniczo nie ma szans na zareagowanie, odroczenie aktualizacji tak długo, że skończyłoby się to niepoprawnym stanem.
Ale jest to podejście kuloodporne, które zawsze będzie działać.
Potrzebujesz go tylko wtedy, gdy twoja aktualizacja stanu zależy od danych poprzedniego stanu, tak jak to się dzieje.
Jeśli aktualizacja stanu jest nowym elementem danych, który nie zależy od poprzedniego stanu, zawsze możesz
bezpiecznie użyć tej niefunkcjonalnej formy.
A oto uwaga dodatkowa, ponieważ oczywiście wszystkie skróty wykorzystują składnię funkcji
eralnych i pozbywają się instrukcji return w nawiasach klamrowych.
Ponieważ mamy tylko jedno wyrażenie, które natychmiast zwracamy.
Więc teraz z tą reklamą, pytał wcześniej Brooks, ale jest to nieco bezpieczniejsze podejście i zalecił
podejście.
Jeśli aktualizacja stanu zależy od poprzedniego stanu.