使用 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延迟执行实现方法(setTimeout)
Dec 30 Javascript
JavaScript内核之基本概念
Oct 21 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
JS实现把鼠标放到链接上出现滚动文字的方法
Apr 06 Javascript
基于js里调用函数时,函数名带括号和不带括号的区别
Jul 28 Javascript
JS实现类似百叶窗下拉菜单效果
Dec 30 Javascript
bootstrap select插件封装成Vue2.0组件
Apr 17 Javascript
基于jquery日历价格、库存等设置插件
Jul 05 jQuery
关于vue.js组件数据流的问题
Jul 26 Javascript
基于javascript中的typeof和类型判断(详解)
Oct 27 Javascript
在vue项目中封装echarts的步骤
Dec 25 Vue.js
javascript实现计算器功能详解流程
Nov 01 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
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
PHP生成短网址的3种方法代码实例
2014/07/08 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
PHP判断数组是否为空的常用方法(五种方法)
2017/02/08 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
2020/04/06 PHP
IE8 原生JSON支持
2009/04/13 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
JQuery radio(单选按钮)操作方法汇总
2015/04/15 Javascript
React.js入门实例教程之创建hello world 的5种方式
2016/05/11 Javascript
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
详细分析JS函数去抖和节流
2017/12/05 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
解析JS在获取当前月的最后一天遇到的坑
2019/08/30 Javascript
LayUI动态设置checkbox不显示的解决方法
2019/09/02 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
微信小程序如何获取地址
2019/12/24 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
Python实现基于HTTP文件传输实例
2014/11/08 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python 逐行分割大txt文件的方法
2017/10/10 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
使用python 对验证码图片进行降噪处理
2019/12/18 Python
Python imutils 填充图片周边为黑色的实现
2020/01/19 Python
python 日志 logging模块详细解析
2020/03/31 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
2020/11/26 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
python基于openpyxl生成excel文件
2020/12/23 Python
自考生毕业自我鉴定
2013/10/10 职场文书
网络技术专业求职信
2014/02/18 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
中国世界遗产导游词
2015/02/13 职场文书
祝酒词范文
2015/08/12 职场文书
检讨书格式
2019/04/25 职场文书
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers