有时候发现这样删除监听,删除不掉,可能是因为keep-alive的原因
使用了 keep-alive, 离开A页面时,因为组件没被销毁,被缓存起来了,所以不会调用 beforeDestroy 和 destroyed 钩子。
在 keep-alive 中创建的组件,会多出两个生命周期的钩子: activated 与 deactivated:
activated:在 keep-alive 组件激活时调用
deactivated:在 keep-alive 组件停用时调用
beforeDestroy () {
window.removeEventListener('click', this.addEvent)
},
// 更改为
deactivated () {
window.removeEventListener('click', this.addEvent)
},