PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Что такое синтетические события?

DOM и браузер

Синтетические события (SyntheticEvent) — это обёртка React над нативными DOM-событиями, обеспечивающая единый кроссбраузерный интерфейс.

Что это

React не использует нативные события напрямую, а оборачивает их в SyntheticEvent — объект с тем же API (target, preventDefault, stopPropagation), но одинаковым во всех браузерах.

function handleClick(e) {
  // e — SyntheticEvent
  e.preventDefault();
  console.log(e.target);
}
<button onClick={handleClick}>OK</button>

Как работает делегирование

React вешает один обработчик на корень приложения (не на каждый элемент) и через синтетические события распределяет их по компонентам — это эффективнее.

Преимущества

  • Кроссбраузерность — единое поведение.
  • Производительность — делегирование вместо множества обработчиков.
  • Единый API независимо от браузера.

Детали

  • Доступ к нативному событию — через e.nativeEvent.
  • В старых React событие переиспользовалось (pooling) — нельзя было использовать асинхронно без e.persist(); в React 17+ pooling убран.

Коротко для собеседования

Синтетические события — обёртка React над нативными DOM-событиями с единым кроссбраузерным API (target, preventDefault). React использует делегирование (один обработчик на корень). Нативное событие доступно через e.nativeEvent. В React 17+ pooling убран.

Другие вопросы раздела