Es scheint keinen wirklichen Unterschied zu geben
Reagieren Sie aus irgendeinem Grund Listener für Component.onChange
das DOM- element.oninput
Ereignis. Siehe den Hinweis in den Dokumenten zu Formularen:
Reagieren Sie Dokumente - Formulare
Es gibt mehr Menschen, die von diesem Verhalten überrascht sind. Weitere Informationen finden Sie in diesem Problem im React Issue Tracker:
Dokumentieren Sie, wie sich onChange von React auf onInput # 3964 bezieht
Zitat aus den Kommentaren zu diesem Thema:
Ich verstehe nicht, warum React sich dafür entschieden hat, dass sich onChange so verhält wie onInput. Soweit ich das beurteilen kann, haben wir keine Möglichkeit, das alte onChange-Verhalten wiederherzustellen. Die Ärzte behaupten, es sei eine "Fehlbezeichnung", aber nicht wirklich, es wird ausgelöst, wenn sich etwas ändert, nur nicht, bis die Eingabe ebenfalls den Fokus verliert.
Zur Validierung möchten wir manchmal keine Validierungsfehler anzeigen, bis die Eingabe abgeschlossen ist. Oder vielleicht wollen wir einfach nicht bei jedem Tastendruck ein erneutes Rendern. Jetzt können Sie dies nur mit onBlur tun. Jetzt müssen wir auch überprüfen, ob sich der Wert manuell geändert hat.
Es ist keine so große Sache, aber es scheint mir, als hätte React ein nützliches Ereignis weggeworfen und ist vom Standardverhalten abgewichen, als es bereits ein Ereignis gab, das dies tut.
Ich stimme dem Kommentar zu 100% zu ... Aber ich denke, eine Änderung würde jetzt mehr Probleme bringen als lösen, da bereits so viel Code geschrieben wurde, der auf diesem Verhalten beruht.
React ist nicht Teil der offiziellen Web-API-Sammlung
Obwohl React auf JS aufbaut und eine enorme Akzeptanzrate aufweist, gibt es eine Technologie, mit der React eine ganze Reihe von Funktionen unter seiner eigenen (relativ kleinen) API verbirgt. Ein Bereich, in dem dies offensichtlich ist, befindet sich im Ereignissystem, in dem unter der Oberfläche viel los ist, was sich grundlegend vom Standard-DOM-Ereignissystem unterscheidet. Nicht nur in Bezug darauf, welche Ereignisse was tun, sondern auch in Bezug darauf, wann Daten in welcher Phase der Ereignisbehandlung bestehen bleiben dürfen. Mehr dazu lesen Sie hier:
Reagieren Sie auf das Ereignissystem