vue 解决addEventListener重复绑定

我在组件里用addEventListener绑定了一个滚动事件,

mounted(){
    window.addEventListener('scroll', this.scrollListener,false)
},

当再次渲染这个组件时,这个事件又被绑定了一次,我试着用removeEventListener解绑,没有成功

mounted(){
    window.removeEventListener('scroll',this.scrollListener,false)
    window.addEventListener('scroll', this.scrollListener,false)
},

因为当组件重新渲染时this.scrollListener已经不是上一个组件里的this.scrollListener了,最后的解决方案是在组件销毁的时候去解绑

mounted(){
   window.addEventListener('scroll', this.scrollListener,false)
},
destroyed(){
    window.removeEventListener('scroll',this.scrollListener,false)
}

你可能感兴趣的:(vue)