vue对全局事件的解绑

原创
2019/10/17 00:41
阅读数 3K

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

 

场景描述

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

 

解决方案

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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部