Проверяет понимание обработки событий в React и её отличий от нативных DOM-событий.
В React обработка событий — это механизм, позволяющий компонентам реагировать на действия пользователя, такие как клики, наведение мыши, ввод текста или отправка форм. Вместо того чтобы напрямую использовать нативные DOM-события, React создаёт собственную обёртку — синтетические события. Это сделано для того, чтобы обеспечить кроссбраузерную совместимость и улучшить производительность за счёт делегирования событий на корневой элемент.
Синтетические события имеют тот же интерфейс, что и нативные, но работают одинаково во всех браузерах. Обработчики передаются как props в JSX, например, onClick, onChange, onSubmit. В функциональных компонентах обработчики — это обычные функции, которые получают объект события. В классовых компонентах нужно быть внимательным с контекстом this, так как методы класса не привязаны автоматически.
Функциональный компонент с обработчиком клика:
function Button() {
const handleClick = (event) => {
console.log('Кнопка нажата', event);
};
return <button onClick={handleClick}>Нажми меня</button>;
}Классовый компонент с привязкой контекста:
class Button extends React.Component {
constructor(props) {
super(props);
this.handleClick = this.handleClick.bind(this);
}
handleClick(event) {
console.log('Кнопка нажата', event);
}
render() {
return <button onClick={this.handleClick}>Нажми меня</button>;
}
}event.persist() (в старых версиях React).false из обработчика, чтобы предотвратить поведение по умолчанию — нужно вызывать event.preventDefault().Обработка событий в React — это стандартный способ взаимодействия с пользователем, который упрощает работу с DOM и обеспечивает предсказуемое поведение. Используйте синтетические события для создания интерактивных интерфейсов, помните о привязке контекста в классах и о том, что обработчики — это обычные функции, которые можно переиспользовать и тестировать.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию