当我们写Vue项目的时候,大部分时候,我们绑定事件都是在具体的组件上通过@去绑定的例如
<div @click="handleClick">
点击事件
</div>
这样的写法,事件只会在具体元素被点击的时候才会被触发,不会影响其他的组件
但是有时候,我们绑定事件并不是在具体的元素或组件上,而是在全局对象上。例如:
activated(){
window.addEventListener('scroll',this.handleScroll)
}
这个时候,其他页面的滚动也会触发这个scroll事件,因此,为了避免影响其他页面,我们有必要对这个绑定的全局事件进行解绑
当我们对组件使用keep-alive的之后,组件会多出一个activated生命周期函数,它在每次页面展示的时候会执行,对应的,它还提供了一个新的生命周期函数,是 deactivated
deactivated 是页面即将被隐藏或者页面即将被替换成新的页面的时候,就会执行
deactivated(){
window.removeEventListener('scroll', this.handleScroll)
}
网友评论