Здається, реальної різниці немає
React з якихось причин приєднує слухачів Component.onChange
до element.oninput
події DOM . Див. Примітку в документації до форм:
React docs - Форми
Є більше людей, які здивовані такою поведінкою. Щоб отримати докладнішу інформацію, зверніться до цієї проблеми в програмі відстеження випуску React:
Документуйте, як React's onChange відноситься до onInput # 3964
Цитата з коментарів з цього питання:
Я не розумію, чому React вирішив зробити так, щоб onChange поводився так, як це робить onInput. Наскільки я можу сказати, ми не маємо можливості повернути стару поведінку onChange. Документи стверджують, що це "неправильне ім'я", але насправді це не так, воно спрацьовує, коли відбуваються зміни, лише до тих пір, поки введення також не втратить фокус.
Для перевірки іноді ми не хочемо показувати помилки перевірки, поки вони не закінчать друкувати. А може, ми просто не хочемо повторного відтворення при кожному натисканні клавіші. Зараз єдиний спосіб це зробити за допомогою onBlur, але тепер нам також потрібно перевірити, чи значення змінилося вручну.
Це не така велика угода, але мені здається, що React викинув корисну подію і відхилився від стандартної поведінки, коли вже була подія, яка це робить.
Я погоджуюсь на 100% з коментарем ... Але, мабуть, зміна його зараз принесе більше проблем, ніж вирішує, оскільки вже було написано стільки коду, який покладається на цю поведінку.
React не є частиною офіційної колекції веб-API
Незважаючи на те, що React побудований на базі JS і спостерігає величезний рівень прийняття, оскільки технологія React існує, щоб приховувати цілий ряд функціональних можливостей під власним (досить невеликим) API. Одного разу область, де це очевидно, знаходиться в системі подій, де під поверхнею відбувається багато чого, що насправді кардинально відрізняється від стандартної системи подій DOM. Не лише з точки зору того, які події що роблять, але й з точки зору того, коли дозволяється зберігати дані на якому етапі обробки події. Детальніше про це ви можете прочитати тут:
Система подій React