久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:117日期:2022-12-31 18:16:27

在vue項目中需要監(jiān)聽window窗口變化來時時計算圖片的高度,于是就加了一個監(jiān)聽事件;確實監(jiān)聽到了,但是在離開當(dāng)前頁面進(jìn)入其他頁面改變窗口大小時發(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)容了,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 欧美日韩成人激情 | 精品国产一区探花在线观看 | 小泽玛丽娅 | 免费成人在线观看视频 | 视频一区二区国产 | 久热九九 | 蜜桃中文字幕 | 狠狠艹| 日韩性猛交| 日韩欧美国产一区二区三区 | 亚洲精品中文字幕 | 成人小视频在线观看 | 一区二区在线视频免费观看 | 探花在线观看 | 欧美日韩精品区 | 国产免费一区 | 日韩欧美在线播放 | 99re在线视频 | 日本黄色大片免费 | 天天玩天天操天天射 | 久久久www | 天天躁日日躁狠狠躁av麻豆 | 日韩在线免费 | 亚洲综合国产 | 国产精品三级久久久久久电影 | 欧美日韩美女 | 国产精品99久久 | 一区二区三区国产精品 | 日本成人片网站 | 国产色区 | 一区二区中文字幕 | 久久99久久久久 | 久久影院一区 | hh99me在线观看 | 狠久久 | 国产成人欧美一区二区三区的 | 久久999免费视频 | 色资源站| 色综合免费视频 | 在线高清av| 午夜男人免费视频 |