問題描述 在Vue工程中,添加樣式,部分需要做到自適應,需要添加resize事件,由於是單頁面應用,如果組件初始化的時候綁定事件,在切換頁面的時候不去注銷事件,如果來回切換,
會讓resize事件執行多個函數,迅速消耗CPU,瀏覽器會出現卡頓的情況 解決辦法 Vue生命周期mounted 添加 resize事件 Vue生命周期destroy 刪除 resize事件 案例 // 定義邏輯函數 function resizeLogic(){ console.log(document.documentElement.clientHeight) } // 添加 resize 綁定事件 window.addEventListener( "resize",resizeLogic,false ); // 刪除綁定的resize事件 function removeResizeAction(){ window.removeEventListener("resize",resizeLogic); } 重要的一點是添加的邏輯函數一定要是定義好的函數,而不是“匿名函數”,這樣刪除的時候就確定是刪除那個具體(指針)的函數 監聽全局的鍵盤事件 // 定義邏輯函數 function keyLogic(events){ console.log(events.key); } // 添加 resize 綁定事件 window.addEventListener( "keydown",keyLogic,false ); // 刪除綁定的resize事件 function removeKeyAction(){ window.removeEventListener("keydown",keyLogic); } 在react 或者Vue 單頁面應用中,如果需要監聽這種全局事件,就需要加載組件的時候添加事件,離開組件的時候就應該去掉事件。 原文:https://blog.csdn.net/hbiao68/article/details/89879661