使用 vue 實例更好的監(jiān)聽事件及vue實例的方法
更新時間:2019年04月22日 09:51:03 作者:JS菌
這篇文章主要介紹了使用 vue 實例更好的監(jiān)聽事件及vue實例的方法,介紹了一種新增 vue 實例的方法,單獨監(jiān)聽事件,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
文章舉例說明一下在 vue 中如何更好的監(jiān)聽瀏覽器事件。原文介紹了一種新增 vue 實例的方法,單獨監(jiān)聽事件。這樣代碼書寫較為簡練,容易管理。
當(dāng)監(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 不支持多實例的調(diào)試,因此需要對這部分代碼保持簡單
最后看看效果:
總結(jié)
以上所述是小編給大家介紹的使用 vue 實例更好的監(jiān)聽事件及vue實例的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
淺談vue-props的default寫不寫有什么區(qū)別
這篇文章主要介紹了淺談vue-props的default寫不寫有什么區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08