博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vue——对全局事件的解绑
阅读量:3899 次
发布时间:2019-05-23

本文共 1004 字,大约阅读时间需要 3 分钟。

 activated () {
    window.addEventListener('scroll', this.handleScroll)
  },
  deactivated () {
    window.removeEventListener('scroll', this.handleScroll)
  }
全局事件会影响到其他的组件所以要解绑,

activated生命周期钩子是用了keep-alive才有的,每次页面刷新都得会加载

--------------------- 
作者:一阙希望之歌 
来源:CSDN 
原文:https://blog.csdn.net/weixin_42587425/article/details/82262067 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

解绑全局事件

在项目中,我们往往会遇到全局事件的绑定,但是可能只是某一个页面,如果不进行解绑,将会出现各种各样的bug,所以对全局事件进行解绑,很有必要。 

实例分析

在项目中,我们在detail/components/Header组件对全局对象window进行了事件绑定,当切换到了其他其他页面的时候,仍然未解除绑定之前,每一个页面都会执行该事件绑定的方法,消耗内存,所以必须解绑全局事件。

bug

该实例bug为:在跳转到其他页面的时候,对应的绑定事件仍继续执行。

解决方法

解决上述bug的方法就是在deactivated钩子函数中解除全局事件的绑定。备注:deactivated钩子是使用keep-alive时新增的钩子函数,表示离开当前页面的时候的一个时期。

当页面即将被隐藏,或者替换成其他页面的时候,deactivated 函数会被执行

    activated(){

      window.addEventListener('scroll', this.handleScroll)
    },
    deactivated(){
      window.removeEventListener('scroll', this.handleScroll)
    }
此时,已经解除了全局事件的绑定。
--------------------- 
作者:CHH5431 
来源:CSDN 
原文:https://blog.csdn.net/qq_41115965/article/details/81771877 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的文章
Android UI开发专题之界面设计【基础API】
查看>>
ejarmaker: jar 、java类的加密工具
查看>>
配置NFS实现Linux服务器之间的文件共享
查看>>
PostgreSQL连接池pgbouncer的使用
查看>>
Kryo序列化进阶学习: 加密数据
查看>>
swift 3.0 数组赋值
查看>>
用C#通过888-TT打印中文标签
查看>>
sendmail 出现 My unqualified host name的解决办法
查看>>
彻底解决lazarus安装组件后烦人的编译时单元找不到的问题!
查看>>
Delphi的参数修饰const/var/output 与C++的对应关系
查看>>
C++ free与delete区别
查看>>
VC的字符串转换atlconv的使用
查看>>
递归算法的时间复杂度
查看>>
数据结构之图(存储结构、遍历)
查看>>
使用sizeof计算类的大小
查看>>
乐观锁与悲观锁——解决并发问题
查看>>
operator 类型转换及重载
查看>>
HTTP状态码
查看>>
TCP/IP详解--举例明白发送/接收缓冲区、滑动窗口协议之间的关系
查看>>
TCP/IP详解--再次深入理解TCP网络编程中的send和recv
查看>>