vue中的addEventListener和removeEventListener用法说明

 更新时间:2022年06月29日 15:02:53   作者:浅笑如伤  
这篇文章主要介绍了vue中的addEventListener和removeEventListener用法说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

addEventListener和removeEventListener用法说明

1、添加监听事件(addEventListener)

语法:element.addEventListener(event, function, useCapture)

  • event:指定事件名(注意: 不要使用 "on" 前缀。 例如,使用 "click" ,而不是使用 "onclick")
  • function:指定要事件触发时执行的函数(事件对象会作为第一个参数传入函数)
  • useCapture:指定事件是否在捕获或冒泡阶段执行,默认false(true - 事件句柄在捕获阶段执行,false-事件句柄在冒泡阶段执行)
mounted() {
    window.addEventListener("resize", this.setNavLeft);
},
methods: {
    listenerFunction(e) {
      document.addEventListener("scroll", this.handleScroll, true);
    },
}

2、移出监听事件(removeEventListener)

语法:element.removeEventListener(event, function, useCapture)

注意:在vue中销毁事件监听,一定要在destroyed生命周期中执行,在 beforeDestroy到destroyed之间,执行组件事件拆卸,在beforeDestroy中执行事件销毁是成功不了的

destroyed() {
    document.removeEventListener("scroll", this.handleScroll, true);
    window.removeEventListener("resize", this.setNavLeft);
  },

使用addEventListener添加事件、removeEventListener移除事件

最近在项目中需要用到addEventListener监听滚动条滚动的高度,所以就研究了一下在vue中是怎么进行事件监听的。

添加事件

给要添加事件的元素加上ref属性

在mounted中添加事件

    mounted() {
      this.$refs.box.addEventListener('scroll',()=>{
        console.log('scroll',this.$refs.box.scrollTop)
      });
    }

这样就添加成功了!

移除事件

如果要移除已添加的事件,removeEventListener中传入的方法必须和addEventListener中传入的是同一个方法才能成功移除,所以在添加时就不能用匿名函数啦。需改成如下写法

    mounted() {
      this.$refs.box.addEventListener('scroll',this.scrollEvent);
    },
    methods:{
      scrollEvent(){
        console.log('scroll',this.$refs.box.scrollTop)
      }
    }

这里要注意 传入的方法 this.scrollEvent 后面不能加括号,否则无法成功添加

组件销毁前移除事件

    beforeDestroy() {
      this.$refs.box.removeEventListener('scroll',this.scrollEvent);
    }

如果是keep-alive组件,可以用下面这种方式

  activated() {
    this.$refs.box.addEventListener('scroll', this.scrollEvent);
  },
  deactivated(){
    this.$refs.box.removeEventListener('scroll',this.scrollEvent);
  },

另外,addEventListener还可以给一个元素添加多个事件,并且不会覆盖已存在的事件,这里就不多展开了~

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Vue + better-scroll 实现移动端字母索引导航功能

    Vue + better-scroll 实现移动端字母索引导航功能

    better-scroll 是一款重点解决移动端(已支持 PC)各种滚动场景需求的插件。这篇文章主要介绍了Vue + better-scroll 实现移动端字母索引导航功能,需要的朋友可以参考下
    2018-05-05
  • Vue2使用cube-ui 实现搜索过滤、高亮功能

    Vue2使用cube-ui 实现搜索过滤、高亮功能

    cube-ui 是基于 Vue.js 实现的精致移动端组件库,由于很长一段时间没有学习cube-ui 的功能实现示例代码了,今天通过本文给大家介绍下Vue2使用cube-ui 实现搜索过滤、高亮功能,感兴趣的朋友跟随小编一起看看吧
    2023-01-01
  • vue实现随机验证码功能的实例代码

    vue实现随机验证码功能的实例代码

    这篇文章主要介绍了vue实现随机验证码功能的实例代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Vue字符串中如何添加多个空格

    Vue字符串中如何添加多个空格

    这篇文章主要介绍了Vue字符串中如何添加多个空格问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • vue ref如何获取子组件属性值

    vue ref如何获取子组件属性值

    这篇文章主要介绍了vue ref如何获取子组件属性值。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 简单聊聊vue3.0 sfc中setup的变化

    简单聊聊vue3.0 sfc中setup的变化

    这篇文章主要给大家介绍了关于vue3.0 sfc中setup变化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-10-10
  • vue.js选中动态绑定的radio的指定项

    vue.js选中动态绑定的radio的指定项

    这篇文章主要介绍了vue.js选中动态绑定的radio的指定项,需要的朋友可以参考下
    2017-06-06
  • 前端低代码form-generator实现及新增自定义组件详解

    前端低代码form-generator实现及新增自定义组件详解

    这篇文章主要给大家介绍了关于前端低代码form-generator实现及新增自定义组件的相关资料,form-generator是一个开源的表单生成器,可以帮助我们快速构建各种表单页面,需要的朋友可以参考下
    2023-11-11
  • Vue项目创建首页发送axios请求的方法实例

    Vue项目创建首页发送axios请求的方法实例

    这篇文章主要给大家介绍了关于Vue项目创建首页发送axios请求的相关资料,文中通过图文以及实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2023-02-02
  • Vue 图片监听鼠标滑轮滚动实现图片缩小放大功能(实现思路)

    Vue 图片监听鼠标滑轮滚动实现图片缩小放大功能(实现思路)

    其实想要实现功能很简单,就是在一张图片上监听鼠标滑轮滚动的事件,然后根据上滚还是下滚实现图片的缩放,这篇文章主要介绍了Vue 实现图片监听鼠标滑轮滚动实现图片缩小放大功能,需要的朋友可以参考下
    2023-03-03

最新评论