当前位置: 首页 > news >正文

JS实现/封装节流函数

封装节流函数

节流原理:在一定时间内,只能触发一次

let timer, flag;
/*** 节流原理:在一定时间内,只能触发一次* * @param {Function} func 要执行的回调函数 * @param {Number} wait 延时的时间* @param {Boolean} immediate 是否立即执行* @return null*/
function throttle(func, wait = 500, immediate = true) {if (immediate) {if (!flag) {flag = true;// 如果是立即执行,则在wait毫秒内开始时执行typeof func === 'function' && func();timer = setTimeout(() => {flag = false;}, wait);}} else {if (!flag) {flag = true// 如果是非立即执行,则在wait毫秒内的结束处执行timer = setTimeout(() => {flag = falsetypeof func === 'function' && func();}, wait);}}
};
export default throttle

使用

// 按钮点击click(e) {// 进行节流控制,每this.throttle毫秒内,只在开始处执行throttle(() => {// 如果按钮时disabled和loading状态,不触发水波纹效果if (this.loading === true || this.disabled === true) return;// 是否开启水波纹效果if (this.ripple) {// 每次点击时,移除上一次的类,再次添加,才能触发动画效果this.waveActive = false;this.$nextTick(function() {this.getWaveQuery(e);});}this.$emit('click', e);}, this.throttleTime);},
http://www.lryc.cn/news/274728.html

相关文章:

  • ENVI 各版本安装指南
  • 60天零基础干翻C++————初识C++
  • 考研复试英语口语问答举例第二弹
  • MyBatis-Plus实现自定义SQL语句的分页查询
  • vue3 里的 ts 类型工具函数
  • 【SpringCloud】之远程消费(进阶使用)
  • 自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程
  • CISSP 第5章 保护资产的安全
  • docker安装-在linux下的安装步骤
  • 在Uniapp中使用Echarts创建可视化图表
  • 基于python的leetcode算法介绍之动态规划
  • 通信原理期末复习——计算大题(一)
  • 【萤火虫系列教程】2/5-Adobe Firefly 文字​生成​图像
  • JDK 11:崭新特性解析
  • leetcode.在链表中插入最大公约数
  • 云原生学习系列之基础环境准备(单节点安装kubernetes)
  • 【数据结构】二叉树的概念及堆
  • 美年大健康黄伟:从选型到迁移,一个月升级核心数据库
  • OpenHarmony应用构建工具Hvigor的构建流程
  • ChatGPT在金融财务领域的10种应用方法
  • 全程云OA ajax.ashx SQL注入漏洞复现
  • VMware 安装 macOS虚拟机(附工具包)
  • Tomcat与Servlet是什么关系
  • C++11_右值引用
  • C#使用条件语句判断用户登录身份
  • 在VM下使用Composer完成快照方式的软件制作
  • YOLOv5改进 | Neck篇 | 利用Damo-YOLO的RepGFPN改进特征融合层
  • 设计模式——最全梳理,最好理解
  • 外包干了4个月,技术退步明显了...
  • rust 注释文档生成 cargo doc