使用 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 typeof 用法
Dec 28 Javascript
js实现日历可获得指定日期周数及星期几示例分享(js获取星期几)
Mar 14 Javascript
JavaScript获取并更改input标签name属性的方法
Jul 02 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
Jun 09 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
Dec 08 Javascript
详解AngularJS脏检查机制及$timeout的妙用
Jun 19 Javascript
关于laydate.js加载laydate.css路径错误问题解决
Dec 27 Javascript
Angular5升级RxJS到5.5.3报错:EmptyError: no elements in sequence的解决方法
Apr 09 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
JavaScript Window浏览器对象模型原理解析
May 30 Javascript
解决vue的router组件component在import时不能使用变量问题
Jul 26 Javascript
create-react-app开发常用配置教程
Jun 25 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笔记之常用文件操作
2010/10/12 PHP
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
PHP的几个常用加密函数
2016/02/03 PHP
thinkPHP删除前弹出确认框的简单实现方法
2016/05/16 PHP
基于jquery的一个拖拽到指定区域内的效果
2011/09/21 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
2013/04/26 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
JavaScrip关于创建常量的知识点
2017/12/07 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
layui动态表头的实现代码
2019/08/22 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
对于Python中线程问题的简单讲解
2015/04/03 Python
详解Python中的各种转义符\n\r\t
2019/07/10 Python
tensorflow指定CPU与GPU运算的方法实现
2020/04/21 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
尤妮佳moony海外旗舰店:日本殿堂级纸尿裤品牌
2018/02/23 全球购物
一套Delphi的笔试题一
2016/02/14 面试题
致跳远、跳高运动员广播稿
2014/01/09 职场文书
四个太阳教学反思
2014/02/01 职场文书
翻译学院毕业生自荐书
2014/02/02 职场文书
2014年清明节寄语
2014/04/03 职场文书
家庭财产分割协议书范本
2014/11/24 职场文书
2014年学生资助工作总结
2014/12/18 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书
2016春季幼儿园开学寄语
2015/12/03 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
python 提取html文本的方法
2021/05/20 Python
使用Oracle命令进行数据库备份与还原
2021/12/06 Oracle