亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決vue 給window添加和移除resize事件遇到的坑

 更新時間:2020年07月21日 15:29:50   作者:qq_43561241  
這篇文章主要介紹了解決vue 給window添加和移除resize事件遇到的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

在vue項目中需要監(jiān)聽window窗口變化來時時計算圖片的高度,于是就加了一個監(jiān)聽事件;確實監(jiān)聽到了,但是在離開當(dāng)前頁面進入其他頁面改變窗口大小時發(fā)現(xiàn)window還是處于監(jiān)聽狀態(tài),即移除監(jiān)聽事件并沒有生效。

  //之前的寫法,這樣寫移除監(jiān)聽事件無效
  mounted(){
    window.addEventListener('resize',()=>{
      '改變窗口大小時需要做的處理'
    });
  },
  beforeDestroy() {
    window.removeEventListener("resize");
  }

后來查找相關(guān)資料后發(fā)現(xiàn)用下面這種寫法可以移除監(jiān)聽

  methods: {
    listenResize(){
      '窗口大小改變時的操作'
    }
  },
  mounted(){
    window.addEventListener('resize',this.listenResize); 
  },
  beforeDestroy() {
    window.removeEventListener("resize",this.listenResize);
  }

補充知識:vue 監(jiān)聽屏幕變化 & 銷毀監(jiān)聽事件

記一次小坑.

由于用到 echarts 需要自適應(yīng)屏幕,所以在vue中用了監(jiān)聽事件并且考慮到性能問題,所以用lodash 庫的 debounce 做了包裹.代碼如下:

mounted() {
  window.addEventListener('resize', debounce(this.resize,200), true)
},
beforeDestroy() {
  window.removeEventListener('resize', this.resize, true)
},
methods: {
  resize() {
   this.radarChart.resize()
  }
}

然而發(fā)現(xiàn)切換到其他的頁面的時候,屏幕改變的時候還是會觸發(fā) resize 事件,因為之前寫過類似功能,代碼是沒有問題的,但是就是會觸發(fā),心里也是覺得奇怪,研究了一下,發(fā)現(xiàn) addEventListener 的方法里面不加 debounce 就可以了.如下:

mounted() {
  window.addEventListener('resize', this.resize, true)
},
beforeDestroy() {
  window.removeEventListener('resize', this.resize, true)
},
methods: {
  resize: debounce(function() {
   this.radarChart.resize()
  }, 300),
 }

debounce 需要加在 methods 里面.并且內(nèi)部函數(shù)體不能使用箭頭函數(shù),否則會報 this undefined 的問題

以上這篇解決vue 給window添加和移除resize事件遇到的坑就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue props對象validator自定義函數(shù)實例

    vue props對象validator自定義函數(shù)實例

    今天小編就為大家分享一篇vue props對象validator自定義函數(shù)實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • elementUI動態(tài)表單?+?el-select?按要求禁用問題

    elementUI動態(tài)表單?+?el-select?按要求禁用問題

    這篇文章主要介紹了elementUI動態(tài)表單?+?el-select?按要求禁用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue el-select綁定對象時,回顯內(nèi)容不正確,始終是最后一項的解決

    vue el-select綁定對象時,回顯內(nèi)容不正確,始終是最后一項的解決

    這篇文章主要介紹了vue el-select綁定對象時,回顯內(nèi)容不正確,始終是最后一項的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue操作dom并為dom增加點擊事件方式

    vue操作dom并為dom增加點擊事件方式

    這篇文章主要介紹了vue操作dom并為dom增加點擊事件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue Tooltip提示動態(tài)換行問題

    vue Tooltip提示動態(tài)換行問題

    這篇文章主要介紹了vue Tooltip提示動態(tài)換行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • 在nuxt中使用路由重定向的實例

    在nuxt中使用路由重定向的實例

    這篇文章主要介紹了在nuxt中使用路由重定向的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue watch監(jiān)聽取不到this指向的數(shù)問題

    vue watch監(jiān)聽取不到this指向的數(shù)問題

    這篇文章主要介紹了vue watch監(jiān)聽取不到this指向的數(shù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 關(guān)于vue中@click.native.prevent的說明

    關(guān)于vue中@click.native.prevent的說明

    這篇文章主要介紹了關(guān)于vue中@click.native.prevent的說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • vue2+elementUI的el-tree的懶加載功能

    vue2+elementUI的el-tree的懶加載功能

    這篇文章主要介紹了vue2+elementUI的el-tree的懶加載,文中給大家提到了element?ui?中?el-tree?實現(xiàn)懶加載的方法,本文結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • vue頁面切換到滾動頁面顯示頂部的實例

    vue頁面切換到滾動頁面顯示頂部的實例

    下面小編就為大家分享一篇vue頁面切換到滾動頁面顯示頂部的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03

最新評論