Vue - утечка слушателя события - PullRequest
0 голосов
/ 11 декабря 2018

Когда я добавляю новый собственный обработчик событий (el.addEventListener('scroll', () => blabla)) при монтировании компонента, должен ли я удалить его при уничтожении компонента?Или он будет удален автоматически?

Все примеры, которые я нахожу в Интернете, относятся к window.addEventListener, который, как и ожидалось, не удаляется в течение всего времени жизни приложения и поэтому требует ручного прослушивателя.cleanings.

Мой конкретный случай: я создал пользовательскую директиву Vue для обнаружения события прокрутки компонента и прикрепил прослушиватель к ловушке вставки, и задался вопросом, должен ли я также удалить прослушиватель на ловушке отмены привязки.

Мой код директивы:

  bind(el, binding) {
    el._scrollHandler = evt => binding.value(evt, el);
    el.addEventListener('scroll', el._scrollHandler);
  },

  unbind(el) {
    el.removeEventListener('scroll', el._scrollHandler);
  }
...