Wygląda na to, że nie ma żadnej różnicy
Reaguj, z jakiegoś powodu, dołącza detektory Component.onChange
do element.oninput
zdarzenia DOM . Zobacz uwagę w dokumentach na formularzach:
React docs - Formularze
Jest więcej osób, które są zaskoczone tym zachowaniem. Aby uzyskać więcej informacji, zapoznaj się z tym problemem w narzędziu do śledzenia problemów w React:
Udokumentuj, jak reakcja onChange odnosi się do onInput # 3964
Cytuj z komentarzy w tej sprawie:
Nie rozumiem, dlaczego React zdecydował, że onChange zachowuje się tak, jak onInput. O ile wiem, nie mamy możliwości przywrócenia starego zachowania onChange. Dokumenty twierdzą, że jest to „błędna nazwa”, ale tak naprawdę nie jest, uruchamia się, gdy następuje zmiana, ale nie do momentu, gdy dane wejściowe również tracą ostrość.
W celu weryfikacji czasami nie chcemy pokazywać błędów walidacji, dopóki nie zakończą wpisywania. A może po prostu nie chcemy ponownego renderowania po każdym naciśnięciu klawisza. Teraz jedynym sposobem na to jest użycie onBlur, ale teraz musimy również sprawdzić, czy wartość zmieniła się ręcznie.
To nie jest taka wielka sprawa, ale wydaje mi się, że React odrzucił użyteczne wydarzenie i odszedł od standardowego zachowania, gdy już było wydarzenie, które to robi.
Zgadzam się w 100% z komentarzem ... Ale myślę, że zmiana go teraz przyniosłaby więcej problemów niż rozwiązuje, ponieważ napisano już tyle kodu, który opiera się na tym zachowaniu.
React nie jest częścią oficjalnej kolekcji Web API
Mimo że React jest zbudowany na bazie JS i odnotował ogromny współczynnik adaptacji, ponieważ React istnieje technologii, która ukrywa całą masę funkcji pod własnym (dość małym) API. Kiedyś obszar, w którym jest to oczywiste, to system zdarzeń, gdzie pod powierzchnią dzieje się wiele rzeczy, które w rzeczywistości radykalnie różnią się od standardowego systemu zdarzeń DOM. Nie tylko pod względem tego, które zdarzenia robią co, ale także pod względem tego, kiedy dane mogą pozostać na jakim etapie obsługi zdarzenia. Możesz przeczytać więcej na ten temat tutaj:
System reagowania na zdarzenia