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


Posted in Javascript onApril 22, 2019

文章举例说明一下在 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实例的方法

总结

以上所述是小编给大家介绍的使用 vue 实例更好的监听事件及vue实例的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
基于jQuery的左右滚动实现代码
Dec 03 Javascript
json数据的列循环示例
Sep 06 Javascript
php显示当前文件所在的文件以及文件夹所有文件以树形展开
Dec 13 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
详解JavaScript for循环中发送AJAX请求问题
Jun 23 Javascript
前端JS面试中常见的算法问题总结
Dec 23 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
Oct 27 Javascript
Javascript 之封装(Package)
Sep 14 Javascript
详解webpack编译速度提升之DllPlugin
Feb 05 Javascript
vue写h5页面的方法总结
Feb 12 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 #Javascript
关于vue-cli 3配置打包优化要点(推荐)
Apr 22 #Javascript
说说如何利用 Node.js 代理解决跨域问题
Apr 22 #Javascript
详解Vue中使用Axios拦截器
Apr 22 #Javascript
Vue.js + Nuxt.js 项目中使用 Vee-validate 表单校验
Apr 22 #Javascript
vue 项目build错误异常的解决方法
Apr 22 #Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 #Javascript
You might like
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
php实现的Timer页面运行时间监测类
2014/09/24 PHP
cakephp常见知识点汇总
2017/02/24 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
详解php反序列化
2020/06/10 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
jquery.Ajax()方法调用Asp.Net后台的方法解析
2014/02/13 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
jQuery实现dialog设置focus焦点的方法
2015/06/10 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
JS动态计算移动端rem的解决方案
2016/10/14 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
JavaScript通过改变文字透明度实现的文字闪烁效果实例
2017/04/27 Javascript
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
python获取糗百图片代码实例
2013/12/18 Python
python进程管理工具supervisor使用实例
2014/09/17 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
2020/01/04 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
Python 解析库json及jsonpath pickle的实现
2020/08/17 Python
python复合条件下的字典排序
2020/12/18 Python
Python3使用Selenium获取session和token方法详解
2021/02/16 Python
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
娇韵诗加拿大官网:Clarins加拿大
2017/11/20 全球购物
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
企业法人代表授权委托书
2014/10/02 职场文书
关于Numpy之repeat、tile的用法总结
2021/06/02 Python
JavaScript的Set数据结构详解
2022/02/18 Javascript