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

Какие методы для слушания событий важны на практике и чем они отличаются?

DOM и браузер

Методы для слушания событий: `addEventListener` (основной, гибкий), свойство `on (onclick), инлайн-атрибут (устаревший). В React — синтетические события (onClick`). Различаются гибкостью и числом обработчиков.**

Методы

addEventListener (предпочтительный)

element.addEventListener('click', handler, options);
  • Несколько обработчиков на одно событие.
  • Опции: capture (фаза), once (один раз), passive (не блокировать scroll).
  • Снятие: removeEventListener.

Свойство on* (onclick, onkeydown)

element.onclick = handler;
  • Только один обработчик (перезаписывается).
  • Просто, но ограниченно.

Инлайн-атрибут (устаревший)

<button onclick="handler()">Кнопка</button>
  • Смешивает разметку и логику — не рекомендуется.

React (синтетические события)

<button onClick={handler} />
  • Обёртка над нативными (кроссбраузерность), делегирование на корень.

Различия

  • Число обработчиков: addEventListener — много; on* — один.
  • Гибкость: addEventListener — фазы, опции, снятие; on* — нет.
  • Разделение логики/разметки: инлайн смешивает, остальные — нет.

Как выбирать

  • Всегда → addEventListener (гибкость, несколько обработчиков).
  • React → синтетические `onClick`.
  • Инлайн-атрибуты — избегать.

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

Слушать события: addEventListener (предпочтительно — несколько обработчиков, опции capture/once/passive, снятие), свойство on* (onclick — один обработчик, перезаписывается), инлайн-атрибут (устарел, смешивает разметку/логику). В React — синтетические события (onClick, кроссбраузерная обёртка, делегирование). По умолчанию — addEventListener.

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