在vue中,寫在methods里面的方法,在頁面切換時一般就自動銷毀了,但是寫在window上的事件,需要我們手動解綁,也是為了提高代碼執(zhí)行效率,案例如下:
1、 當(dāng)我在新聞資訊頁面執(zhí)行滾動事件時,不斷從控制臺打印出1

image.png
2、切換到其他頁面也會執(zhí)行滾動事件

image.png
- 代碼如下
// 滾動側(cè)邊欄浮動
sideFloat() {
// tslint:disable-next-line:no-console
console.log(1);
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
scrollTop > 410 ? this.isFloat = true : this.isFloat = false;
}
mounted() {
window.addEventListener("scroll", this.sideFloat);
}
解決方案,使用生命周期函數(shù)beforeDestroy,在頁面離開時執(zhí)行
// 對滾動事件綁定及解綁
beforeDestroy() {
window.removeEventListener("scroll", this.sideFloat);
}
這樣就解決了對全局事件的解綁 +_+