Vue Modal 中元素的事件侦听器:当 Modal 关闭时它们会被销毁吗?

Event listeners on elements in a Vue Modal: are they destroyed when the Modal is closed?

我正在为 Vue 模态中存在的组件中的 DOM 元素添加事件侦听器:

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')
        })
      })

侦听器工作得很好,但我想在 Modal 组件关闭时将其删除;我的应用程序是一个 SPA,在其他页面上不需要它。虽然我知道我可以只使用 removeEventListener,但我的问题是当 Modal 关闭时事件侦听器是否会自动销毁,因为 Modal 中的元素不再存在。

如果节点被销毁(或从 DOM 中删除并且再也没有使用过),那么它将与附加到它的任何事件侦听器一起被垃圾收集。

使用 Vue 时,手动访问 DOM 并附加事件侦听器是一个危险信号。你有什么理由不能用“Vue 方式”来做吗?