vue 創建監聽,和銷毀監聽(addEventListener, removeEventListener)


最近在做一個有關監聽scroll的功能, 發現我添加監聽之后一直不起作用:

  1.  
    mounted() {
  2.  
    window.addEventListener("scroll", this.setHeadPosition); //this.setHeadPosition方法名
},

  后來發現要在后面添加一個true之后才行:

  1.  
    mounted() {
  2.  
    window.addEventListener("scroll", this.setHeadPosition, true);
  3.  
    },

  而在離開是的時候需要銷毀監聽: (在destroyed里面銷毀), 否則監聽會一直存在, 因為這是單頁面應用, 頁面並未關閉.

  1.  
    destroyed() {
  2.  
    window.removeEventListener("scroll", this.setHeadPosition, true);
  3.  
    },

  在銷毀的時候一定也要加上true, 否則銷毀不起作用.

 如果該組件時被keep-alive組件包裹,切換到該組件,觸發activated鈎子函數, 切換到其他組件觸發deactivated鈎子函數, 但是組件並沒有銷毀

  <keep-alive >
      <router-view></router-view>
    </keep-alive>

 

 activated() {
    // 全局綁定滾動事件,
    window.addEventListener("scroll", this.handleScroll);
  },
  deactivated() {
    // 組件消失,解綁scroll事件
    window.removeEventListener("scroll", this.handleScroll);
  }

 

轉載於:https://www.cnblogs.com/lianxisheng/p/10802250.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM