Нет, React заботится об обработке событий.Также обратите внимание, что React DOM заботится об обработке DOM-рендеринга.Ваш <button />
JSX не будет создавать элемент кнопки каждый раз, когда компонент отображается.Он определяет узел button
в виртуальном дереве React, который затем синхронизируется с реальным DOM.
Из-за этого React не устанавливает обработчики событий непосредственно в узле, например, если вы проверяете <button>
элемент с отладчиком, вы не увидите onClick
слушателя, прикрепленного к нему!В чем дело?Эта статья объясняет это: https://medium.com/the-guild/getting-to-know-react-doms-event-handling-system-inside-out-378c44d2a5d0
TL; DR: React использует глобальный обработчик событий в корне вашей страницы, затем он заботится об отправке события, поэтому даже если вы получите ссылку button
и затем вы используете removeEventListener
, это не будет иметь никакого эффекта.
Вам нужно беспокоиться только об очистке прослушивателей событий, если вы используете другую не-React библиотеку, которая использует DOM напрямую.Но и в этом случае браузер будет собирать прослушиватели при удалении узла из DOM.