使用 vue 實例更好的監(jiān)聽事件及vue實例的方法
更新時間:2019年04月22日 09:51:03 作者:JS菌
這篇文章主要介紹了使用 vue 實例更好的監(jiān)聽事件及vue實例的方法,介紹了一種新增 vue 實例的方法,單獨監(jiān)聽事件,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
文章舉例說明一下在 vue 中如何更好的監(jiān)聽瀏覽器事件。原文介紹了一種新增 vue 實例的方法,單獨監(jiān)聽事件。這樣代碼書寫較為簡練,容易管理。
當監(jiān)聽如下事件的傳統(tǒng)做法是:
- window.scrollX
- window.scrollY
- window.innerHeight
- window.innerWidth
通常需要書寫很多代碼:
created () {
this.$el.addEventListener('click', this.someMethod)
},
destroyed () {
this.$el.removeEventListener('click', () => this.someMethod)
}
更好的方式是使用新的 Vue 實例
import Vue from 'vue'
const WindowInstanceMap = new Vue({
data() {
return {
scrollY: 0
}
},
created() {
window.addEventListener('scroll', e => {
this.scrollY = window.scrollY
})
},
})
export default WindowInstanceMap
然后在項目中使用:
// AppNav.vue
import WindowInstanceMap from './WindowInstanceMap.js'
export default {
computed: {
scrollY () { return WindowInstanceMap.scrollY },
isCollapsed () {
return this.scrollY < 100
}
}
}
這樣做的好處是:
- 不會大量占用 dev-tool 的版面顯示變動信息
- 減少主要項目的代碼
- 因為 dev-tool 不支持多實例的調試,因此需要對這部分代碼保持簡單
最后看看效果:

總結
以上所述是小編給大家介紹的使用 vue 實例更好的監(jiān)聽事件及vue實例的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
相關文章
淺談vue-props的default寫不寫有什么區(qū)別
這篇文章主要介紹了淺談vue-props的default寫不寫有什么區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08

