使用 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 相关文章推荐
基于Web标准的UI组件 — 树状菜单(2)
Sep 18 Javascript
JQuery each()函数如何优化循环DOM结构的性能
Dec 10 Javascript
百度移动版的url编码解码示例
Apr 29 Javascript
学习JavaScript设计模式之享元模式
Jan 18 Javascript
Angularjs中UI Router的使用方法
May 14 Javascript
AngularJS中的指令全面解析(必看)
May 20 Javascript
详细谈谈javascript的对象
Jul 31 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
Vue 实现列表动态添加和删除的两种方法小结
Sep 07 Javascript
JavaScript前端开发时数值运算的小技巧
Jul 28 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+DBM的同学录程序(5)
2006/10/09 PHP
分享最受欢迎的5款PHP框架
2014/11/27 PHP
php实现json编码的方法
2015/07/30 PHP
php微信公众账号开发之前五个坑(一)
2016/09/18 PHP
万能的php分页类
2017/07/06 PHP
PHP实现腾讯与百度坐标转换
2017/08/05 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
关于火狐(firefox)及ie下event获取的两种方法
2012/12/27 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
javascript中的Function.prototye.bind
2015/06/25 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
Angularjs修改密码的实例代码
2017/05/26 Javascript
JS简单实现数组去重的方法分析
2017/10/14 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
JS函数进阶之继承用法实例分析
2020/01/15 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
Python自动扫雷实现方法
2015/07/25 Python
Python使用回溯法子集树模板解决迷宫问题示例
2017/09/01 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
python 字符串常用方法汇总详解
2019/09/16 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
人事主管岗位职责范本
2013/12/04 职场文书
单位领导证婚词
2014/01/14 职场文书
工程款申请报告
2015/05/15 职场文书
小学英语教学随笔
2015/08/14 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
Apache POI操作批量导入MySQL数据库
2022/06/21 Servers