使用 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 相关文章推荐
自己的js工具 Cookie 封装
Aug 21 Javascript
JavaScript通过RegExp实现客户端验证处理程序
May 07 Javascript
深入理解JS中的substr和substring
Apr 26 Javascript
JS中如何比较两个Json对象是否相等实例代码
Jul 13 Javascript
javascript设计模式之module(模块)模式
Aug 19 Javascript
jQuery中绑定事件bind() on() live() one()的异同
Feb 23 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
JS按钮闪烁功能的实现代码
Jul 21 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
Feb 21 Javascript
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
微信小程序引入Vant组件库过程解析
Aug 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
解析PHP中DIRECTORY_SEPARATOR,PATH_SEPARATOR两个常量的作用
2013/06/21 PHP
PHP中使用file_get_contents post数据代码例子
2015/02/13 PHP
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
利用laravel+ajax实现文件上传功能方法示例
2017/08/13 PHP
php实现获取近几日、月时间示例
2019/07/06 PHP
设定php简写功能的方法
2019/11/28 PHP
angularJS提交表单(form)
2015/02/09 Javascript
js实现鼠标滚轮控制图片缩放效果的方法
2015/02/20 Javascript
jquery.validate使用时遇到的问题
2015/05/25 Javascript
JS+CSS实现下拉列表框美化效果(3款)
2015/08/15 Javascript
JavaScript数组_动力节点Java学院整理
2017/06/26 Javascript
vue+axios+promise实际开发用法详解
2018/10/15 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
Angular处理未可知异常错误的方法详解
2021/01/17 Javascript
Django rest framework基本介绍与代码示例
2018/01/26 Python
Python3 replace()函数使用方法
2018/03/19 Python
python3实现字符串操作的实例代码
2019/04/16 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
pycharm 批量修改变量名称的方法
2019/08/01 Python
HTML5之SVG 2D入门10—滤镜的定义及使用
2013/01/30 HTML / CSS
HTML5拖拽文件上传的示例代码
2021/03/04 HTML / CSS
Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
2012/06/05 面试题
C# .NET面试题
2015/11/28 面试题
护士毕业生自荐信
2014/02/07 职场文书
《阳光》教学反思
2014/02/23 职场文书
《蓝色的树叶》教学反思
2014/02/24 职场文书
婚礼司仪主持词
2014/03/14 职场文书
周年庆典答谢词
2015/01/20 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年党建工作总结
2015/03/30 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Python天气语音播报小助手
2021/09/25 Python