vue对全局事件的解绑

当咱们在一个组件中对window对象设置事件监听器(如对scroll事件的监听),其实这就绑定了一个全局事件,所以在另外一个组件中也能触发这个事件。vue

 

场景描述this

当我在App.vue中使用了keep-alive标签,并在某一个组件的activated生命周期钩子中写了window.addEventListener(''scroll', this.handleScroll)来设置一个对scroll事件的监听,却在另外一个组件中也生效了,这显然不是想要的结果!对象

 

解决方案生命周期

使用keep-alive的时候其实还有一个生命周期钩子:deactivated,它会在页面即将被隐藏或是页面即将被替换为新页面的时候执行。所以能够在deactivated(){ }中写入window.removeEventListener(''scroll', this.handleScroll)来解绑该全局事件。事件

相关文章
相关标签/搜索