React implementiert eine synthetische Ereignisschicht basierend auf dem virtuellen DOM. Der von uns definierte Ereignishandler empfängt eine Instanz des synthetischen Ereignisschichtobjekts, das vollständig mit dem W3C kompatibel ist Standard Es wird keine Kompatibilitätsprobleme mit IE-Standards geben. Es verfügt über dieselbe Schnittstelle wie native Browserereignisse und unterstützt auch den Event-Bubbling-Mechanismus. Alle Ereignisse werden automatisch an die äußerste Ebene gebunden.
Implementierungsmechanismus synthetischer Ereignisse
React bindet Event-Handler nicht direkt an reale Knoten. Stattdessen sind alle Ereignisse an die äußerste Schicht der Struktur gebunden und es wird ein einheitlicher Ereignis-Listener verwendet. Dieser Ereignis-Listener verwaltet eine Zuordnung, um die Ereignis-Überwachungs- und Verarbeitungsfunktionen in allen Komponenten zu speichern . Wenn ein Ereignis auftritt, wird es zunächst von diesem Ereignis-Listener verarbeitet. Anschließend findet der Ereignis-Listener die eigentliche Ereignisbehandlungsfunktion in der Zuordnung und ruft sie auf. Dies vereinfacht den Ereignisverarbeitungs- und Recyclingmechanismus und verbessert die Effizienz erheblich.
Wenn Sie native DOM-Ereignisse in React verwenden, müssen Sie diese manuell entfernen, wenn die Komponente deinstalliert wird. Andernfalls kann es zu Speicherverlusten kommen. Bei Verwendung des synthetischen Ereignissystems ist dies nicht erforderlich weil React diese Probleme intern bereits ordnungsgemäß für Sie gelöst hat.
Obwohl synthetische Ereignisse das Problem von Speicherverlusten lösen können, muss in einigen Fällen native Zeit verwendet werden, um dies zu erreichen. Sprechen Sie nicht über die Vermischung synthetischer Ereignisse und nativer Ereignisse, aber dies kann auch durch die Beurteilung von e.target vermieden werden. Tatsächlich ist das synthetische Ereignissystem von React nur eine Teilmenge des nativen DOM-Ereignissystems.
Das obige ist der detaillierte Inhalt vonKenntnisse über React-Event-Systeme. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!