您好,登錄后才能下訂單哦!
本篇內容介紹了“vue中的addEventListener和removeEventListener怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
語法:element.addEventListener(event, function, useCapture)
event
:指定事件名(注意: 不要使用 "on" 前綴。 例如,使用 "click" ,而不是使用 "onclick")
function
:指定要事件觸發時執行的函數(事件對象會作為第一個參數傳入函數)
useCapture
:指定事件是否在捕獲或冒泡階段執行,默認false(true - 事件句柄在捕獲階段執行,false-事件句柄在冒泡階段執行)
mounted() { window.addEventListener("resize", this.setNavLeft); }, methods: { listenerFunction(e) { document.addEventListener("scroll", this.handleScroll, true); }, }
語法:element.removeEventListener(event, function, useCapture)
注意:在vue中銷毀事件監聽,一定要在destroyed生命周期中執行,在 beforeDestroy到destroyed之間,執行組件事件拆卸,在beforeDestroy中執行事件銷毀是成功不了的
destroyed() { document.removeEventListener("scroll", this.handleScroll, true); window.removeEventListener("resize", this.setNavLeft); },
最近在項目中需要用到addEventListener監聽滾動條滾動的高度,所以就研究了一下在vue中是怎么進行事件監聽的。
給要添加事件的元素加上ref屬性
在mounted中添加事件
mounted() { this.$refs.box.addEventListener('scroll',()=>{ console.log('scroll',this.$refs.box.scrollTop) }); }
這樣就添加成功了!
如果要移除已添加的事件,removeEventListener中傳入的方法必須和addEventListener中傳入的是同一個方法才能成功移除,所以在添加時就不能用匿名函數啦。需改成如下寫法
mounted() { this.$refs.box.addEventListener('scroll',this.scrollEvent); }, methods:{ scrollEvent(){ console.log('scroll',this.$refs.box.scrollTop) } }
這里要注意 傳入的方法 this.scrollEvent 后面不能加括號,否則無法成功添加
組件銷毀前移除事件
beforeDestroy() { this.$refs.box.removeEventListener('scroll',this.scrollEvent); }
如果是keep-alive組件,可以用下面這種方式
activated() { this.$refs.box.addEventListener('scroll', this.scrollEvent); }, deactivated(){ this.$refs.box.removeEventListener('scroll',this.scrollEvent); },
“vue中的addEventListener和removeEventListener怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。