1 00:00:02,220 --> 00:00:07,770 Staat ist ein entscheidendes Konzept und Reaktion, und deshalb ist es mir wichtig, dass Sie verstehen, wie es 2 00:00:07,770 --> 00:00:08,160 funktioniert. 3 00:00:08,670 --> 00:00:14,340 U. S. Status ist, wie Sie Status- und Funktionskomponenten verwalten, und Ihr Status kann alles sein. 4 00:00:14,350 --> 00:00:15,510 Es muss kein Array sein. 5 00:00:15,570 --> 00:00:20,580 Es könnte ein Text sein, eine Zahl, ein Objekt, ein Array, ein Boolescher Wert, so etwas. 6 00:00:21,570 --> 00:00:24,780 Use state gibt immer ein Array mit zwei Elementen zurück. 7 00:00:24,870 --> 00:00:30,450 Unabhängig von Ihrem Status gibt ein Status ohne Verwendung immer noch ein Array mit genau zwei Elementen 8 00:00:30,450 --> 00:00:30,930 zurück. 9 00:00:31,380 --> 00:00:35,760 Denn das erste Element ist dann immer Ihr aktueller Status-Snapshot. 10 00:00:36,210 --> 00:00:43,020 Das zweite Element ist eine Funktion, mit der Sie diesen Status-Snapshot aktualisieren können, wenn Sie den 11 00:00:43,080 --> 00:00:44,350 Status-Snapshot aktualisieren. 12 00:00:44,520 --> 00:00:46,020 React wird zwei Dinge tun. 13 00:00:46,620 --> 00:00:49,950 Diese intern gespeicherten Statusdaten werden aktualisiert. 14 00:00:50,250 --> 00:00:56,130 Wenn wir zum Beispiel hier unser erstes neues Ziel hinzufügen, wird es den Ausgangszustand durch unseren brandneuen 15 00:00:56,130 --> 00:00:57,090 Zustand ersetzen. 16 00:00:57,210 --> 00:01:00,150 In diesem Fall mit dem brandneuen Array, das wir mit Concat erstellt haben. 17 00:01:00,870 --> 00:01:07,500 Sobald die Daten intern aktualisiert wurden, wird diese Komponentenfunktion erneut aufgerufen und die gesamte 18 00:01:07,500 --> 00:01:08,640 Funktion ausgeführt. 19 00:01:08,850 --> 00:01:11,250 Und daher haben alle dieses J als X-Code wiedergegeben. 20 00:01:12,020 --> 00:01:14,400 Jetzt unter der Haube wird nicht der gesamte Dom neu gerendert. 21 00:01:14,400 --> 00:01:20,250 Es wird nur geprüft, welche Teile des DOM aktualisiert werden müssen, aber die gesamte Komponente wird neu bewertet. 22 00:01:20,920 --> 00:01:27,030 Dies bedeutet natürlich auch, dass der Verwendungsstatus erneut ausgeführt wird, der Verwendungsstatus jedoch intern so funktioniert, dass ein 23 00:01:27,030 --> 00:01:32,400 stabiler Zustand nur initialisiert wird, wenn die Komponente zum ersten Mal gerendert wird und anschließend Rehren 24 00:01:32,400 --> 00:01:33,420 recycelt wird. 25 00:01:33,690 --> 00:01:39,630 Es wird nur der Snapshot des neuesten Status abgerufen und der hier festgelegte Anfangswert ignoriert. 26 00:01:41,580 --> 00:01:43,770 So funktioniert ein Staat. 27 00:01:44,370 --> 00:01:49,140 Nun ist es wichtig zu verstehen, dass diese Art der Aktualisierung unseres Nachlasses in diesem Szenario nicht 28 00:01:49,140 --> 00:01:50,310 die bestmögliche ist. 29 00:01:50,670 --> 00:01:52,980 Also dupliziert und auskommentiert. 30 00:01:53,160 --> 00:01:54,900 Also hatten wir es immer noch als Referenz. 31 00:01:54,930 --> 00:01:56,880 Wir sehen aber auch den besseren Ansatz. 32 00:01:57,390 --> 00:01:58,830 Dieser Ansatz funktioniert eindeutig. 33 00:01:58,950 --> 00:02:00,600 Und in den meisten Fällen wird es funktionieren. 34 00:02:01,170 --> 00:02:06,750 Aber Sie müssen sich bewusst sein, dass diese gesamte Statusaktualisierung einen Teil der Reaktion wiedergibt. 35 00:02:07,230 --> 00:02:08,880 Wird das Ende nicht durch Reagieren bewältigt? 36 00:02:09,330 --> 00:02:15,180 Und wenn Sie ein Asset erstellen und angeben, dass nicht alles angehalten wird, wird Ihre App sofort erneut aufgerufen. 37 00:02:15,510 --> 00:02:17,910 Stattdessen werden Zeitpläne für die Statusaktualisierung erstellt. 38 00:02:18,150 --> 00:02:23,550 Und wenn Sie eine Anwendung mit vielen laufenden Statusaktualisierungen haben und viel Arbeit ausgeführt wird, was 39 00:02:23,820 --> 00:02:29,280 nicht der Fall ist und die Anwendung ausführt, aber der Fall sein kann, und andere Anwendungen, wird 40 00:02:29,340 --> 00:02:32,010 Ihre Statusaktualisierung möglicherweise um einige Millisekunden verschoben. 41 00:02:32,580 --> 00:02:39,780 Das bedeutet, dass der Kern-Skold, der derzeit auf dem Bildschirm angezeigt wird, möglicherweise nicht unser aktueller Status 42 00:02:39,780 --> 00:02:45,900 ist, wenn ein Benutzer mehrmals auf Gold klickt, da möglicherweise noch nicht alle Statusaktualisierungen 43 00:02:45,900 --> 00:02:46,950 verarbeitet wurden. 44 00:02:47,640 --> 00:02:53,970 Daher gibt es eine bessere Form, dies zu aktualisieren, als unsere neuen Statusdaten zu übergeben, um Kursziele festzulegen. 45 00:02:54,360 --> 00:03:01,710 Sie können eine Funktion zum Festlegen von Kurszielen übergeben. Diese Funktion empfängt die neuesten Statusvorbereitungskursziele und 46 00:03:01,800 --> 00:03:05,670 muss einen neuen Statusschnappschuss zurückgeben und gut reagieren. 47 00:03:05,670 --> 00:03:11,070 Planen Sie dann alle diese Funktionsaufrufe und garantieren Sie, dass sie in der richtigen Reihenfolge 48 00:03:11,070 --> 00:03:17,160 ausgeführt werden, sodass Sie auch dann die erste Ausführung erhalten, wenn eine Statusaktualisierung zum Zeitpunkt der Aktualisierung nach 49 00:03:17,160 --> 00:03:18,900 der Ausführung verschoben wurde. 50 00:03:19,470 --> 00:03:25,080 Und dann würden Sie hier einfach Darfor für die Rückkehr Pref Course Gold, was immer noch kein Ray Concat neues Ziel 51 00:03:25,080 --> 00:03:25,440 ist. 52 00:03:25,890 --> 00:03:28,680 Es wird das gleiche Ergebnis wie zuvor in dieser App liefern. 53 00:03:28,920 --> 00:03:31,850 Und in dieser einfachen App wäre dieser Ansatz in Ordnung gewesen. 54 00:03:31,890 --> 00:03:39,270 Grundsätzlich besteht keine Möglichkeit zu reagieren und Aktualisierungen so lange aufzuschieben, dass wir einen falschen Status erhalten. 55 00:03:39,720 --> 00:03:43,050 Dies ist jedoch der kugelsichere Ansatz, der immer funktionieren wird. 56 00:03:43,410 --> 00:03:49,680 Sie benötigen es nur, wenn Ihre Statusaktualisierung von den Daten des vorherigen Status abhängt, wie dies auch der Fall ist. 57 00:03:50,010 --> 00:03:55,860 Wenn es sich bei Ihrer Statusaktualisierung um ein neues Datenelement handelt, das nicht vom vorherigen Status abhängt, können Sie 58 00:03:55,920 --> 00:03:58,380 dieses nicht funktionierende Formular immer sicher verwenden. 59 00:03:59,160 --> 00:04:03,150 Und hier ist eine Randnotiz, denn natürlich nutzt die gesamte Verkürzung 60 00:04:03,150 --> 00:04:06,780 die allgemeine Funktionssyntax und entfernt die return-Anweisung in geschweiften Klammern. 61 00:04:07,050 --> 00:04:10,110 Da wir nur einen Ausdruck haben, kehren wir sofort zurück. 62 00:04:10,710 --> 00:04:15,690 Nun, mit dieser Anzeige, fragte Brooks vorher, aber dies ist ein bisschen sicherer und er empfahl den 63 00:04:15,690 --> 00:04:16,080 Ansatz. 64 00:04:16,110 --> 00:04:18,690 Ob Ihre Statusaktualisierung vom vorherigen Status abhängt.