Synthetische React-Ereignisse beziehen sich auf die React-Simulation eines Dom-Ereignisflusses mithilfe von JS. (Der Faserbaum simuliert die Dom-Baumstruktur) Der Ereignisfluss synthetischer Ereignisse wird erfasst und im Faserbaum weitergeleitet. Klicken Sie zunächst auf das EingabefeldWenn Sie auf das Eingabefeld klicken, hört React auf das Fokusereignis (Hinweis 2) (Hinweis 3) am Stammknoten (Hinweis 1).
An diesem Punkt erhält React nur die Information über das native Ereignisobjekt (nativeEvent). React verwendet das dem nativeEvent entsprechende Dom (EventTarget), um sich im Dom-Baum nach oben zu bewegen und den von React verwalteten Dom-Knoten (Hinweis 4) (Hinweis 5) zu finden, der dem EventTarget am nächsten ist, und erhält die entsprechende Faser A. Erstellen Sie dann mithilfe des Ereignis-Plugins (Hinweis 6) ein synthetisches Ereignis (Hinweis 7) A. Das synthetische Ereignis A wird von React als Ereignisquelle im simulierten Ereignisfluss betrachtet und Faser A wird von React als Ereignisziel betrachtet.
Sammeln Sie alle Fasern des Hosttyps ab Faser A aufwärts (bis zur Faser HostComponent der obersten Ebene). Anschließend wird das gesammelte Faserarray von hinten nach vorne (Erfassung) und dann von vorne nach hinten (Blase) durchlaufen. Bei jeder Durchquerung wird das Fokusereignis erfasst, das an den Faserknoten des aktuellen Durchquerungselements gebunden ist (Hinweis 8). Anschließend (nachdem das Ereignis-Plugin abgeschlossen ist, d. h. das synthetische Ereignis generiert wurde) werden die Foucs-Rückrufe in der Reihenfolge der Erfassung ausgeführt. So simuliert React den Ereignisfluss. Erweiterungen Durch Klicken auf das Eingabefeld werden mehrere Ereignisse ausgelöstNeben dem Fokus werden auch andere Ereignisse ausgelöst – Klick etc. React hört auf verschiedene Ereignistypen am Stammknoten. Jedes Mal, wenn ein Ereignis gehört wird, wird es einmal versendet. Bei mehreren Ereignistypen wird es mehrere Male versendet. Durch Klicken auf das Eingabefeld werden nacheinander Fokus und Klick ausgelöst. Wenn das Fokusereignis ausgelöst wird, wird das Klickereignis ausgelöst. Bei jedem Auslösen eines Ereignisses wird die Warteschlange für ausstehende Synchronisierungsaufgaben (flushSyncCallBackQueue) verarbeitet.
Wenn im NoMode-Modus Ereignisse mehrmals ausgelöst werden und jedes Ereignis den Status ändert (z. B. durch den Aufruf von setState), wird die entsprechende Komponente mehrmals gerendert. Wenn Sie in diesem Beispiel auf das Eingabefeld klicken und das Fokusereignis und das Klickereignis an die Eingabe binden und die Ereignisrückrufe „setState“ aufrufen, wird die Eingabe zweimal gerendert. Warum wird die Eingabe in React nach dem Festlegen des Werts zu einer kontrollierten Komponente?Wenn in React das Wertattribut für die Eingabe festgelegt ist, ändert sich der Wert des Eingabefelds nicht, unabhängig davon, was in das Eingabefeld eingegeben wird. Sofern Sie den Zustand der Eingabekomponente nicht ändern. Nach der Verarbeitung des simulierten Ereignisstroms ruft React Methoden auf, um einige unerwartete Effekte zurückzusetzen. Wenn Sie in diesem Szenario beispielsweise einen Wert in die Eingabe eingeben, wird im Eingabefeld der von Ihnen eingegebene Wert angezeigt, der Eingabewert wird jedoch sofort durch die Werteigenschaft der entsprechenden Faser aktualisiert (finishEventHander setzt die gesteuerte Komponente zurück). Wenn für die Eingabe kein Wert festgelegt ist, wird dieser ignoriert. Warum sind synthetische Ereigniseigenschaften manchmal nicht zugänglich?Denn React gibt das synthetische Ereignisobjekt frei, nachdem der Ereignisfluss (erfasst das Sprudeln) abgeschlossen ist (SyntheticEvent.prototype.destructor setzt die Eigenschaften des synthetischen Ereignisobjekts zurück). Wie simuliert React die Verhinderung von Event-Bubbling und Standardverhalten?React führt Callbacks in der Reihenfolge des Ereignisflusses aus. Vor der Ausführung prüft es, ob sich das aktuelle synthetische Ereignisobjekt in einem Zustand befindet, der ein Aufsteigen verhindert. Wenn dies der Fall ist, beendet es den Ereignisfluss. Der synthetische Ereignisobjekt-Prototyp von React verbessert native Funktionen. Die Blasenverhinderung und die Standardverhaltensverhinderung der nativen Ereignismethode sind gekapselt (die native Ereignismethode wird auch intern aufgerufen). Hinweise Hinweis 1: Der Stammknoten ist document in react-v16 und der Mount-Container Dom in react-v17 Oben finden Sie den ausführlichen Inhalt der detaillierten Erklärung zu synthetischen React-Ereignissen. Weitere Informationen zu synthetischen React-Ereignissen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: CentOS7 verwendet RPM, um MySQL 5.7-Tutorialdiagramm zu installieren
Bei jedem Start von Tomcat werden die folgenden P...
Zusammenfassung: Nginx-Reverse-Proxy für JIRA kon...
Inhaltsverzeichnis 01 Hintergrund 02 Einleitung 0...
Weiterführende Literatur: Beheben Sie das Problem...
Als ich kürzlich CSS studierte, stellte ich fest,...
Inhaltsverzeichnis Vorwort Was ist Hot Change Coc...
Inhaltsverzeichnis Einführung Ideen Erstellen ein...
Es gibt drei Hauptmethoden der MySQL-Replikation:...
Problembeschreibung: Struktur: test hat zwei Feld...
Bevor wir Docker offiziell verwenden, machen wir ...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...
Lösung: Beenden Sie alle mit .vscode in Zusammenh...
Vorwort Wie wir alle wissen, legt die Nginx-Konfi...
Apache Tika ist eine Bibliothek zur Dateityperken...
In diesem Artikelbeispiel wird der spezifische Ja...