vue函数防抖

chatgpt/2023/10/4 7:24:51

防抖的概念  防抖又叫为函数防抖(debounce):指触发事件后,在 n 秒内函数只能执行一次,如果触发事件后在 n 秒内又触发了事件,则会重新计算函数延执行时间。  前端开发中,常见的事件如,onresize,scroll,mousemove ,mousehover 等会短时间内多次触发(频繁触发…

防抖的概念

  防抖又叫为函数防抖(debounce):指触发事件后,在 n 秒内函数只能执行一次,如果触发事件后在 n 秒内又触发了事件,则会重新计算函数延执行时间。

  前端开发中,常见的事件如,onresize,scroll,mousemove ,mousehover 等会短时间内多次触发(频繁触发),不做限制的话可能一秒执行几百次,在这些函数内部如果还执行了其他函数,尤其是执行了操作 DOM 的函数的话(浏览器操作 DOM 是很耗费性能的),那不仅会浪费计算机资源,还会降低程序运行速度,甚至造成浏览器卡死、崩溃。

  除此之外,短时间内重复调用 ajax 不仅会造成数据关系的混乱,还会造成网络拥堵,增加服务器压力等问题。

按钮防抖

import { debounce } from 'lodash';
<divv-for="(item, index) in summaryData":key="index"@click="handleFun(item, index)">
</div>
methods: {// 点击handleFun: debounce(function (item, index) {console.log(item,this)}, 300),
}

自定义指令防抖

 directive.js

import Vue from "vue";
import { debounce } from "lodash";export default Vue.directive("debounceClick", {inserted: function (el, binding) {let delayTime = el.getAttribute("delay-time") || 500;el.onclick = debounce(function () {binding.value();}, delayTime);},
});

main.js引入

import "@/utils/directive";

页面使用

<template><div id="app"><button v-debounceClick="debounce">防抖</button></div>
</template><script>export default {name: "App",components: {},methods: {debounce() {console.log(111);},},
};
</script><style></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-5313637.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

【ChatGPT辅助学Rust | 基础系列 | Hello, Rust】编写并运行第一个Rust程序

文章目录 前言一&#xff0c;创建项目二&#xff0c;两种编译方式1. 使用rustc编译器编译2. 使用Cargo编译 总结 前言 在开始学习任何一门新的编程语言时&#xff0c;都会从编写一个简单的 “Hello, World!” 程序开始。在这一章节中&#xff0c;将会介绍如何在Rust中编写并运…

轻松解决宝塔面板设置了授权IP访问,但是IP变动导致访问不了面板

为了宝塔面板的安全与隐蔽性&#xff0c;我们很多站长会设置授权IP&#xff0c;授权IP的作用是&#xff1a;设置访问授权IP,多个请使用逗号(,)隔开;注意&#xff1a;一旦设置授权IP,只有指定IP的电脑能访问面板! 但是很多站长不是通过专用的虚拟通道访问&#xff0c;用的都是宽…

智慧展馆展厅人员定位系统解决方案:提升参观体验与管理效率

随着数字化时代的到来&#xff0c;展馆和展厅逐渐成为人们了解文化、艺术、科技等领域的重要窗口。 然而&#xff0c;传统的展馆和展厅存在着一些问题&#xff0c;例如参观者迷路、信息获取不及时、管理效率低下等。 为了提升参观体验和管理效率&#xff0c;研发智慧展馆展厅…

红队攻防 | 解决HW被疯狂封IP姿势~(附下载)

本项目其实就是个简单的代理服务器&#xff0c;经过小小的修改。加了个代理池进来。渗透、爬虫的时候很容易就会把自己ip给ban了&#xff0c;所以就需要ip代理池了。 ProxyPool 爬虫代理IP池项目,主要功能为定时采集网上发布的免费代理验证入库&#xff0c;定时验证入库的代理…

goctl template一定制化服务配置生成

官网介绍&#xff1a; 模板&#xff08;Template&#xff09;是数据驱动生成的基础&#xff0c;所有的代码&#xff08;rest api、rpc、model、docker、kube&#xff09;生成都会依赖模板&#xff0c; 默认情况下&#xff0c;模板生成器会选择内存中的模板进行生成&#xff0c…

js中复选框的全选和捕捉回车键

复选框的全选 可以实现当点击全选按钮时&#xff0c;所有按钮都会被选中&#xff0c;当下面所有分按钮都被选中后&#xff0c;全选按钮自动亮起。 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></hea…

rtabmap 主从机 rviz 订阅 /rtabmap/mapData 时报错

在实体小车上跑rtabmap算法&#xff0c;在rviz上订阅 /rtabmap/mapData 话题时不显示建图信息并且报错&#xff1a; [ERROR] [xxxxxxxx]: Client [/rviz] wants topic /rtabmap/mapData to have datatype/md5sum [rtabmap/mapData/xxxxxxxxxxxxx], but our version has [rtabm…

SpringBoot项目中使用Lombok插件中Slf4j日志框架

前言&#xff1a;idea需要安装lombok插件&#xff0c;因为该插件中添加了Slf4j注解&#xff0c;可以将Slf4j翻译成 private static final org.slf4j.Logger logger LoggerFactory.getLogger(this.XXX.class); springboot本身就内置了slf4j日志框架&#xff0c;所以不需要单独…
推荐文章