返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue项目中销毁window.addEventListener事件监听解析
  • 897
分享到

vue项目中销毁window.addEventListener事件监听解析

2024-04-02 19:04:59 897人浏览 安东尼
摘要

目录销毁window.addEventListener事件监听window.addEventListener监听scroll事件解决办法使用throttle出现的新问题最后代码销毁w

销毁window.addEventListener事件监听

今天在做项目的过程中,组件中调用iframe时,由于在组件的created方法中写了监听,用于接收iframe发来的信息,但是在组件销毁的时候并没有去掉监听,导致组件创建几次,监听方法就会执行几次,特此记录

created() {
    window.addEventListener('message', this.receiveMessage, false)
  },
beforeDestroy() { // 在组件生命周期结束的时候销毁。
    window.removeEventListener('message', this.receiveMessage, false)
  },

window.addEventListener监听scroll事件

今天想在Vue的项目里面用下拉加载,然后就直接写了:

mounted () {
    window.addEventListener( 'scroll', this.scrollHander)
},
methods: {
    scrollHander () {  }
}

但是我发现我切换路由以后依旧其他页面也触发了scrollHandler函数,然后我想到使用了vue-router做的spa项目,window对象不变的,所以需要在每次使用后销毁。

解决办法

我回去看了下vue文档的生命周期,看到了destroyed,然后直接在这个周期内销毁就可以了。

mounted () {
    window.addEventListener('scroll', this.scrollHander)
},
destroyed () {
    window.removeEventListener('scroll', this.scrollHander)
}

使用throttle出现的新问题

下拉加载一般需要配合throttle限流函数(原理可以看这里)来避免频繁触发,所以优化代码成这样:

mounted () {
    let  _this = this
    window.addEventListener('scroll', throttle(() => {
        _this.scrollHander()
    },200 ))
},

然后发现没法用removeEventListener了,因为这个函数第二个参数不接受匿名函数。

最后代码

用一个变量中转下

mounted () {
    let  _this = this
    this.throttleLoad = throttle(() =>{
        _this.scrollHander()
    },200)
    window.addEventListener('scroll', this.throttleLoad)
},
destroyed () {
    window.removeEventListener('scroll',this.throttleLoad) 
},
methods: { 
    scrollHander () { }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: vue项目中销毁window.addEventListener事件监听解析

本文链接: https://lsjlt.com/news/165350.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • vue项目中销毁window.addEventListener事件监听解析
    目录销毁window.addEventListener事件监听window.addEventListener监听scroll事件解决办法使用throttle出现的新问题最后代码销毁w...
    99+
    2024-04-02
  • Pythonpygame项目实战事件监听
    目录1. 在游戏循环中监听事件2. 案例演示2.1 案例概览2.2 运行结果1. 在游戏循环中监听事件 事件event: 就是游戏启动后,用户针对游戏所做的操作例如:点击关闭按钮,点...
    99+
    2024-04-02
  • Vue中addEventListener()监听事件案例讲解
    目录一、语法二、事件冒泡或事件捕获?三、拓展阅读addEventListener()事件监听一、语法 element.addEventListener(event, function...
    99+
    2022-12-31
    vue addEventListener监听事件 addEventListener监听事件 addEventListener事件
  • Python pygame项目实战监听退出事件
    目录1. 事件监听2. 案例演示2.1 案例大体思路2.2 代码演示2.3 运行结果1. 事件监听 首先,我们简单回顾一下事件监听,可以简单概括如下: 在游戏循环中,我们希望判断用户...
    99+
    2024-04-02
  • Vue组件事件触发和监听实现源码解析
    目录正文Vue 的事件触发和监听源码分析ononceemitoff动手实现总结正文 通常我们在使用Vue的时候,会使用$emit和$on来触发和监听事件,但是有没有思考是如何实现的呢...
    99+
    2022-12-22
    Vue 组件事件触发监听 Vue 组件触发监听
  • 前端项目中的Vue、React错误监听
    目录一、 Vue 错误监听window.onerrorerrorCaptured 生命周期errorHandler异步错误答案扩展二、React 错误监听ErrorBoundaryd...
    99+
    2024-04-02
  • Java Spring 事件监听详情解析
    目录前言需求背景事件概念定义组成事件实现时序图前言 前段时间因为工作的需要用到Spring事件,翻翻文档将功能实现了,但是存在少许理解不畅的地方,今天有空来梳理梳理。 需求背景 叶子...
    99+
    2024-04-02
  • vue中如何监听键盘回车事件
    这篇文章将为大家详细讲解有关vue中如何监听键盘回车事件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue运行为v-on在监听键盘事件时,添加了特殊的键盘修饰符:<...
    99+
    2024-04-02
  • VUE监听窗口变化事件的示例分析
    这篇文章将为大家详细讲解有关VUE监听窗口变化事件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Vuejs 本身就是一个 MVVM 的框架。但是在监听 wind...
    99+
    2024-04-02
  • vue中监听scroll事件失效的问题及解决
    目录vue监听scroll事件失效问题下面附实现成功的代码vue监听scroll事件vue监听scroll事件失效问题 vue项目中遇到需要监听页面某个元素距顶部距离实现吸顶效果,正...
    99+
    2024-04-02
  • 解析Spring事件发布与监听机制
    前言 Spring 提供了 ApplicationContext 事件机制,可以发布和监听事件,这个特性非常有用。 Spring 内置了一些事件和监听器,例如在 Spring 容器启...
    99+
    2024-04-02
  • javascript中事件监听与事件委托的示例分析
    这篇文章主要介绍了javascript中事件监听与事件委托的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。事件监听与事件委托在js中...
    99+
    2024-04-02
  • vue中怎么利用v-on指令监听事件
    这篇文章将为大家详细讲解有关vue中怎么利用v-on指令监听事件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。<!DOCTYPE html&...
    99+
    2024-04-02
  • vue中怎么监听回到顶部滚动事件
    今天就跟大家聊聊有关vue中怎么监听回到顶部滚动事件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。鼠标滚到到页面中间出现的工具浮框<templ...
    99+
    2024-04-02
  • vue中的事件触发(emit)及监听(on)问题
    目录vue事件触发(emit)及监听(on)每个 vue 实例都实现了事件接口案例vue emit事件无法触发问题vue事件触发(emit)及监听(on) 每个 vue 实例都实现了...
    99+
    2024-04-02
  • vue项目中的数据变化被watch监听并处理
    目录vue数据变化被watch监听处理监听当前vue文件数据监听vuex中的数据如何正确使用watch监听属性变化基本用法监听object初始化变量触发监听回调vue数据变化被wat...
    99+
    2024-04-02
  • 前端项目中的Vue、React错误监听怎么实现
    本篇内容介绍了“前端项目中的Vue、React错误监听怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、 Vue 错误监听题目:如何...
    99+
    2023-06-30
  • nodejs事件的监听与触发的理解分析
    本文实例分析了nodejs事件的监听与触发。分享给大家供大家参考。具体分析如下: 关于nodejs的事件驱动,看了《nodejs深入浅出》还是没看明白(可能写的有点深,或者自己理解能力不够好),今日在图灵社...
    99+
    2022-06-04
    事件 nodejs
  • Java键盘事件处理及监听机制解析
    文章目录 概念KeyEventKeyListener代码演示总结 概念 Java事件处理采用了委派事件模型。在这个模型中,当事件发生时,产生事件的对象将事件信息传递给事件的监听者进行处理。在Java中,事件源是产生事件的对象,...
    99+
    2023-08-20
    java 计算机外设 jvm 开发语言
  • 详解Vue3中Watch监听事件的使用
    目录一、watch的使用1、引入watch2、多个数据源监听3、监听数组变化4、侦听对象5、结论一、watch的使用 watch(WatcherSource, Callback, [...
    99+
    2023-02-10
    Vue3 Watch监听事件使用 Vue3 Watch监听 Vue3 Watch
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作