销毁指令后是否删除监听器?

man*_*dos 3 vue.js

这是指令的简单选项对象。当指令被销毁时,事件监听器会发生什么?是卡在内存中还是被删除了?

export default {
  inserted (el) {
    el.addEventListener('click', function () {
      console.log('Click!')
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

Lin*_*org 5

不,那是你的责任,在unbind钩

function listener () {
  console.log('Click!')
}

export default {
  inserted (el) {
    el.addEventListener('click', listener)
  },
  unbind(el) {
    el.removeEventListener('click', listener)
  }
}
Run Code Online (Sandbox Code Playgroud)