Vue中全局事件的解绑

2020-08-15  本文已影响0人  泡杯感冒灵

当我们写Vue项目的时候,大部分时候,我们绑定事件都是在具体的组件上通过@去绑定的例如

<div @click="handleClick">
  点击事件
</div>

这样的写法,事件只会在具体元素被点击的时候才会被触发,不会影响其他的组件
但是有时候,我们绑定事件并不是在具体的元素或组件上,而是在全局对象上。例如:

activated(){
        window.addEventListener('scroll',this.handleScroll)
  }

这个时候,其他页面的滚动也会触发这个scroll事件,因此,为了避免影响其他页面,我们有必要对这个绑定的全局事件进行解绑
当我们对组件使用keep-alive的之后,组件会多出一个activated生命周期函数,它在每次页面展示的时候会执行,对应的,它还提供了一个新的生命周期函数,是 deactivated
deactivated 是页面即将被隐藏或者页面即将被替换成新的页面的时候,就会执行

 deactivated(){
        window.removeEventListener('scroll', this.handleScroll)
    }
上一篇 下一篇

猜你喜欢

热点阅读