Estoy agregando un detector de eventos para un elemento DOM en un componente que existe dentro de un modal Vue:
this.$bvModal.show('modal-upload-file') this.$nextTick(() => { document.querySelector('#file').addEventListener('focus', () => { document.getElementsByClassName('file-uploads')[0].classList.add('btn-outline-primary') document.getElementsByClassName('file-uploads')[0].classList.remove('btn-primary') }) })El oyente funciona muy bien, pero me gustaría eliminarlo cuando se cierra el componente Modal; mi aplicación es un SPA y no la necesitará en otras páginas. Aunque sé que solo puedo usar removeEventListener, mi pregunta es si los detectores de eventos se destruyen automáticamente cuando se cierra el modal, ya que los elementos dentro del modal ya no existen.
Si el nodo se destruye (o se elimina del DOM y nunca se vuelve a usar), se recolectará como basura junto con los detectores de eventos adjuntos.
Al usar Vue, acceder al DOM manualmente y adjuntar detectores de eventos como ese es una señal de alerta. ¿Hay alguna razón por la que no puedas hacerlo de la "manera Vue"?