您好,欢迎来到爱玩科技网。
搜索
您的当前位置:首页使用 vue 实例更好的监听事件及vue实例的方法

使用 vue 实例更好的监听事件及vue实例的方法

来源:爱玩科技网


文章举例说明一下在 vue 中如何更好的监听浏览器事件。原文介绍了一种新增 vue 实例的方法,单独监听事件。这样代码书写较为简练,容易管理。

当监听如下事件的传统做法是:

  • 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 实例更好的监听事件及vue实例的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
    如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

    Copyright © 2019- aiwanbo.com 版权所有 赣ICP备2024042808号-3

    违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

    本站由北京市万商天勤律师事务所王兴未律师提供法律服务