Загрузка…
Загрузка…
React · middle · сложность 5
В React события обрабатываются через SyntheticEvent — обёртку над нативными событиями браузера с единым API между браузерами.
onClick, onChange, а не onclick.onClick={handler}, не onclick="handler()".e.preventDefault(), а не return false.function Form() {
function handleSubmit(e) {
e.preventDefault();
console.log('submit');
}
return (
<form onSubmit={handleSubmit}>
<button type="submit">Отправить</button>
</form>
);
}Даёт стабильный интерфейс (e.target, e.currentTarget, …). В старых версиях event пулили — нельзя было читать асинхронно без e.persist(). В современных React это в основном не проблема.
В React onChange на <input> срабатывает на каждый ввод (ближе к input в DOM), что удобно для controlled components.
Не смешивайте нативные addEventListener без нужды; держите обработчики в React-дереве. Для производительности списков — стабильные колбэки и делегирование там, где уместно.
Итог: синтаксис JSX + SyntheticEvent + camelCase — главные отличия от классического HTML. На интервью полезно упомянуть controlled inputs и отличия onChange от DOM.