Vue如何优雅地进行事件解绑和解绑
使用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如何优雅地进行事件解绑和解绑相关推荐
- JS中事件的绑定和解绑
JS中事件的绑定和解绑 一. 了解事件 1. 事件的三要素 2. 事件绑定分类 2-1. dem0级 事件 2-2. dom2级 事件 二. 事件的绑定 1. dom0级 事件 2. dom2级 事件 ...
- JS事件的绑定和解绑
/* 事件三要素 1.事件源:在谁的身上绑定事件 2.事件类型:什么事件 3.事件处理函数:当行为发生的时候,执行那一个函数 ==>div.οnclick=function(){} ==> ...
- Vue之组件自定义事件的绑定和解绑
不知道小伙伴们还记不记得在用 Vue 构建 TodoList 案例的博客中,我们有涉及到要从子组件中把数据传递给父组件,当时我用的方法是,让父组件给子组件传递一个函数,然后子组件把要传过来的数据放在那 ...
- 11-jQuery的事件绑定和解绑
[转]11-jQuery的事件绑定和解绑 1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type ( ...
- jQuery的事件绑定和解绑
1.绑定事件 语法: bind(type,data,fn) 描述:为每一个匹配元素的特定事件(像click)绑定一个事件处理器函数. 参数解释: type (String) : 事件类型 data ( ...
- vue 自定义事件 解绑
既然不用的话就解绑 对于绑的谁就去谁那进行触发,解绑则也一样,去找它解绑 在student组件里,this.$off('自定义事件名')但这适用于一个自定义事件的解绑 解绑多个事件this.$off( ...
- 【JavaScript】事件绑定、事件解绑、常见事件类型、事件对象
文章目录 事件 认识事件 事件绑定 - DOM 0级 事件 - DOM 2级 事件(事件侦听器 事件监听) 事件解绑 解绑dom0级事件 解绑dom2级事件 常见的事件类型 1. 鼠标事件 click ...
- 详解在vue项目当中绑定键盘事件
在vue项目当中,有时会遇到为文本输入框或者button按钮绑定键盘事件,最常见的就是enter回车事件. 按照vue官网给出的方法是: v-on:keyup.enter 简写: @keyup.ent ...
- keep alive PHP,vue中keep-alive使用方法详解
这次给大家带来vue中keep-alive使用方法详解,vue中keep-alive使用的注意事项有哪些,下面就是实战案例,一起来看一下. 1.keep-alive的作用以及好处 在做电商有关的项目中 ...
- php动态写入vue,Vue自定义动态组件使用详解
这次给大家带来Vue自定义动态组件使用详解,Vue自定义动态组件的注意事项有哪些,下面就是实战案例,一起来看一下. 现在基于vue的UI组件库有很多,比如iview,element-ui等.但有时候这 ...
最新文章
- 用Python就可以给你的头像戴上圣诞帽,别@微信团队了!
- 关于y7000安装Ubuntu的一些心得体会
- CTF-密码学-攻防世界-幂数加密(云影加密)解密脚本
- 如何成为一位杰出的程序员
- BIM族库下载——常用Revit结构砌体机械族30套
- linux交叉编译libnet,交叉编译samba(mipsel-linux) samba-3.3.3.tar.gz
- CSS 边框 border属性
- 工行纸黄金软件测试,只需一万元,工行刷星7级下卡2万的方法
- 《AJAX实战》ajax in action电子版
- ExecutorService等待线程完成后优雅结束
- 运动会分数统计系统(数据结构)C++
- TikTok账号运营:零播放、被限流的3大原因,手把手教你检测技巧和处理方法
- HarmonyOS学习路之开发篇——Ability
- 【ECNU OJ 3373】 骑士游戏 最短路径+动态规划
- 2007年最杰出十大新锐站长评选-------关注!
- 一沙一世界(10亿光年),科学的图文介绍
- 博瑞云音箱云喇叭开发文档API接口文档开发指南(21-12-20)
- Java验证身份证号码及提取生日信息
- 神经网络bp算法应用,bp神经网络动量因子
- utf8和utf-8
热门文章
- 微信授权登陆跳转提示10003 redirect_uri域名与后台配置不一致
- Matplotlib 25张图,数据分析可视化利器,不收藏女友要和我分手
- isupper_Python字符串| isupper()和islower()方法以及示例
- 计算机视觉—车道线检测
- 自动化框架到底是什么?
- 测试工程师应如何渡过互联网寒冬
- 合并Python列表的魔幻12法
- 【Magick++】配置开发环境
- 服装尺寸 html,服装尺寸S、M、L、XL、XXL分别表示的型号大小和释义(完整版)...
- google translate - 谷歌翻译小工具