使用 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 相关文章推荐
JQuery调用WebServices的方法和4个实例
May 06 Javascript
jQuery操作DOM之获取表单控件的值
Jan 23 Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
详解angularJs中自定义directive的数据交互
Jan 13 Javascript
AngularJS获取json数据的方法详解
May 27 Javascript
React服务端渲染(总结)
Jul 01 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
Aug 23 jQuery
解决百度Echarts图表坐标轴越界的方法
Oct 17 Javascript
说说如何使用Vuex进行状态管理(小结)
Apr 14 Javascript
JS实现的检验身份证格式并输出出生日期,年龄,性别,出生地示例
May 17 Javascript
vue更改数组中的值实例代码详解
Feb 07 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(2)
2006/10/09 PHP
PHP学习之数组的定义和填充
2011/04/17 PHP
PHP生成图片验证码、点击切换实例
2014/06/25 PHP
php用户名的密码加密更安全的方法
2019/06/21 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
2020/02/11 PHP
JavaScript arguments 多参传值函数
2010/10/24 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
jQuery手动点击实现图片轮播特效
2020/04/20 Javascript
深入理解jQuery之事件移除
2016/06/02 Javascript
javascript cookie基础应用之记录用户名的方法
2016/09/20 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
2016/10/05 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
浅谈Node Inspector 代理实现
2017/10/19 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
vue实现打印功能的两种方法
2018/09/07 Javascript
Vue常见面试题整理【值得收藏】
2018/09/20 Javascript
详解Angular中实现自定义组件的双向绑定的两种方法
2018/11/23 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
Python人脸识别初探
2017/12/21 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
python+opencv+caffe+摄像头做目标检测的实例代码
2018/08/03 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
基于Django集成CAS实现流程详解
2020/11/28 Python
利用CSS3把图片变成灰色模式的实例代码
2016/09/06 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
街头时尚在线:JESSICABUURMAN
2019/06/16 全球购物
历史专业个人求职信分享
2013/12/20 职场文书
师范生自我鉴定
2014/03/20 职场文书
保险内勤岗位职责
2015/04/13 职场文书
公司员工体检通知
2015/04/21 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书