Я изучал React и сталкивался с такими событиями, как onCLick. Перед этим я прочитал статью о том, что если мы используем addEventListener в чистом JS, он может загрязнить кучу памяти, поэтому нам нужно использовать removeEventListener (), чтобы гарантировать отсутствие загрязнения кучи памяти. Вопрос заключается в том, «так ли это с React?», То есть когда мы будем использовать onCLick или любое другое событие в React, будет ли любое из них загрязнять кучу памяти?

0
MII 14 Фев 2020 в 18:36

2 ответа

Лучший ответ

Да. Если вы не удалите прослушиватели событий, они продолжат слушать. Хорошее место для их добавления / удаления - componentDidMount / componentWillUnmount.

3
Jacob 14 Фев 2020 в 15:41

Вопрос заключается в том, «так ли это с React?», То есть когда мы будем использовать onCLick или любое другое событие в React, будет ли любое из них загрязнять кучу памяти?

Нет. Если вы используете обычную технику реагирования для прослушивателей событий, такую как свойство onClick для div, то реакция будет очищать эти прослушиватели для вас, когда компонент отключается.

Например, следующий код не вызовет утечку памяти.

const ExampleComponent = (props) => {
  return (
    <div onClick={() => console.log('hi')}/>
  )
}
1
Nicholas Tower 14 Фев 2020 в 15:51