Кажется, нет реальной разницы
React по какой-то причине присоединяет слушателей Component.onChange
к element.oninput
событию DOM . См. Примечание в документации к формам:
React docs - Формы
Такого поведения удивляет больше людей. Дополнительные сведения см. В этой проблеме в системе отслеживания проблем React:
Документируйте, как onChange в React соотносится с onInput # 3964
Цитата из комментариев по этому поводу:
Я не понимаю, почему React решил заставить onChange вести себя так же, как onInput. Насколько я могу судить, у нас нет возможности вернуть прежнее поведение onChange. Документы утверждают, что это «неправильное название», но на самом деле это не так, он срабатывает, когда есть изменение, но только до тех пор, пока ввод также не теряет фокус.
Для проверки иногда мы не хотим отображать ошибки проверки, пока они не закончат ввод. Или, может быть, мы просто не хотим повторного рендеринга при каждом нажатии клавиши. Теперь единственный способ сделать это - использовать onBlur, но теперь нам также нужно проверить, изменилось ли значение вручную.
Это не такая уж большая проблема, но мне кажется, что React выбросил полезное событие и отклонился от стандартного поведения, когда уже было событие, которое это делает.
Я согласен на 100% с комментарием ... Но я полагаю, что его изменение сейчас принесет больше проблем, чем решит, поскольку уже было написано так много кода, который полагается на это поведение.
React не является частью официальной коллекции веб-API
Несмотря на то, что React построен на основе JS и получил огромное распространение, существует технология React, позволяющая скрыть множество функций под собственным (довольно маленьким) API. Однажды область, где это очевидно, находится в системе событий, где много чего происходит под поверхностью, что на самом деле радикально отличается от стандартной системы событий DOM. Не только с точки зрения того, какие события что делают, но и с точки зрения того, когда данные могут сохраняться на каком этапе обработки события. Вы можете прочитать об этом здесь:
Система событий React