使用vue的同学一定对事件的绑定和解绑再熟悉不过了,以开启scroll事件为例,我们一般的写法是这样的:

export default {name: "test",data() {return {};},mounted() {window.addEventListener("scroll", this.scrollHanlder);},beforeDestroy() {window.removeEventListener("scroll", this.scrollHanlder);},method: {scrollHanlder() {// todo something...},},
};
</script>

这样的写法是没有问题的,但是如果我们在mounted中进行了事件解绑,但是在beforeDestroy中忘记了事件解绑,问题就会变得很严重,导致项目运行久了之后变得卡顿和内存溢出。为了避免在beforeDestroy中忘记关闭资源,我们可以使用vue中的hook,将事件绑定和解绑写在一起,提高代码阅读性和减少bug的出现。写法如下:

export default {name: "test",data() {return {};},mounted() {window.addEventListener("scroll", this.scrollHanlder);// 使用$once和hook实现this.$once("hook:beforeDestroy", () => {window.removeEventListener("scroll", this.scrollHanlder);});},beforeDestroy() {},method: {scrollHanlder() {// todo something...},},
};
</script>

Vue如何优雅地进行事件解绑和解绑相关推荐

  1. JS中事件的绑定和解绑

    JS中事件的绑定和解绑 一. 了解事件 1. 事件的三要素 2. 事件绑定分类 2-1. dem0级 事件 2-2. dom2级 事件 二. 事件的绑定 1. dom0级 事件 2. dom2级 事件 ...

  2. JS事件的绑定和解绑

    /* 事件三要素 1.事件源:在谁的身上绑定事件 2.事件类型:什么事件 3.事件处理函数:当行为发生的时候,执行那一个函数 ==>div.οnclick=function(){} ==> ...

  3. Vue之组件自定义事件的绑定和解绑

    不知道小伙伴们还记不记得在用 Vue 构建 TodoList 案例的博客中,我们有涉及到要从子组件中把数据传递给父组件,当时我用的方法是,让父组件给子组件传递一个函数,然后子组件把要传过来的数据放在那 ...

  4. 11-jQuery的事件绑定和解绑

    [转]11-jQuery的事件绑定和解绑 1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type ( ...

  5. jQuery的事件绑定和解绑

    1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type (String) : 事件类型 data ( ...

  6. vue 自定义事件 解绑

    既然不用的话就解绑 对于绑的谁就去谁那进行触发,解绑则也一样,去找它解绑 在student组件里,this.$off('自定义事件名')但这适用于一个自定义事件的解绑 解绑多个事件this.$off( ...

  7. 【JavaScript】事件绑定、事件解绑、常见事件类型、事件对象

    文章目录 事件 认识事件 事件绑定 - DOM 0级 事件 - DOM 2级 事件(事件侦听器 事件监听) 事件解绑 解绑dom0级事件 解绑dom2级事件 常见的事件类型 1. 鼠标事件 click ...

  8. 详解在vue项目当中绑定键盘事件

    在vue项目当中,有时会遇到为文本输入框或者button按钮绑定键盘事件,最常见的就是enter回车事件. 按照vue官网给出的方法是: v-on:keyup.enter 简写: @keyup.ent ...

  9. keep alive PHP,vue中keep-alive使用方法详解

    这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...

  10. php动态写入vue,Vue自定义动态组件使用详解

    这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下. 现在基于vue的UI组件库有很多,比如iview,element-ui等.但有时候这 ...

最新文章

  1. 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
  2. 关于y7000安装Ubuntu的一些心得体会
  3. CTF-密码学-攻防世界-幂数加密(云影加密)解密脚本
  4. 如何成为一位杰出的程序员
  5. BIM族库下载——常用Revit结构砌体机械族30套
  6. linux交叉编译libnet,交叉编译samba(mipsel-linux) samba-3.3.3.tar.gz
  7. CSS 边框 border属性
  8. 工行纸黄金软件测试,只需一万元,工行刷星7级下卡2万的方法
  9. 《AJAX实战》ajax in action电子版
  10. ExecutorService等待线程完成后优雅结束
  11. 运动会分数统计系统(数据结构)C++
  12. TikTok账号运营:零播放、被限流的3大原因,手把手教你检测技巧和处理方法
  13. HarmonyOS学习路之开发篇——Ability
  14. 【ECNU OJ 3373】 骑士游戏 最短路径+动态规划
  15. 2007年最杰出十大新锐站长评选-------关注!
  16. 一沙一世界(10亿光年),科学的图文介绍
  17. 博瑞云音箱云喇叭开发文档API接口文档开发指南(21-12-20)
  18. Java验证身份证号码及提取生日信息
  19. 神经网络bp算法应用,bp神经网络动量因子
  20. utf8和utf-8

热门文章

  1. 微信授权登陆跳转提示10003 redirect_uri域名与后台配置不一致
  2. Matplotlib 25张图,数据分析可视化利器,不收藏女友要和我分手
  3. isupper_Python字符串| isupper()和islower()方法以及示例
  4. 计算机视觉—车道线检测
  5. 自动化框架到底是什么?
  6. 测试工程师应如何渡过互联网寒冬
  7. 合并Python列表的魔幻12法
  8. 【Magick++】配置开发环境
  9. 服装尺寸 html,服装尺寸S、M、L、XL、XXL分别表示的型号大小和释义(完整版)...
  10. google translate - 谷歌翻译小工具