在vue中使用防抖和节流,防止重复点击或重复上拉加载实例


Posted in Javascript onNovember 13, 2019

废话不多说,直接上代码吧!

/**
 * 函数防抖 (只执行最后一次点击)
 * @param fn
 * @param delay
 * @returns {Function}
 * @constructor
 */
export const Debounce = (fn, t) => {
  let delay = t || 500;
  let timer;
  console.log(fn)
  console.log(typeof fn)
  return function () {
    let args = arguments;
    if(timer){
      clearTimeout(timer);
    }
    timer = setTimeout(() => {
      timer = null;
      fn.apply(this, args);
    }, delay);
  }
};
/**
 * 函数节流
 * @param fn
 * @param interval
 * @returns {Function}
 * @constructor
 */
export const Throttle = (fn, t) => {
  let last;
  let timer;
  let interval = t || 500;
  return function () {
    let args = arguments;
    let now = +new Date();
    if (last && now - last < interval) {
      clearTimeout(timer);
      timer = setTimeout(() => {
        last = now;
        fn.apply(this, args);
      }, interval);
    } else {
      last = now;
      fn.apply(this, args);
    }
  }
};

用法

...
methods:{
 getAliyunData:Throttle(function(){
 ...
 },1000),
}
...

以上这篇在vue中使用防抖和节流,防止重复点击或重复上拉加载实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript mouseover、mouseout停止事件冒泡的解决方案
Apr 07 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
AngularJS上拉加载问题解决方法
May 23 Javascript
vue与TypeScript集成配置最简教程(推荐)
Oct 17 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
JavaScript 日期时间选择器一些小结
Apr 02 Javascript
async/await地狱该如何避免详解
May 10 Javascript
layui实现点击按钮给table添加一行
Aug 10 Javascript
JSONP解决JS跨域问题的实现
May 25 Javascript
javascript读取本地文件和目录方法详解
Aug 06 Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 Javascript
vue elementUI表格控制对应列
Apr 13 Vue.js
在vue-cli中引入lodash.js并使用详解
Nov 13 #Javascript
vue 解除鼠标的监听事件的方法
Nov 13 #Javascript
在vue+element ui框架里实现lodash的debounce防抖
Nov 13 #Javascript
element实现合并单元格通用方法
Nov 13 #Javascript
vue之debounce属性被移除及处理详解
Nov 13 #Javascript
Vue的click事件防抖和节流处理详解
Nov 13 #Javascript
vue表单数据交互提交演示教程
Nov 13 #Javascript
You might like
国内咖啡文化
2021/03/03 咖啡文化
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
ThinkPHP3.1数据CURD操作快速入门
2014/06/19 PHP
php广告加载类用法实例
2014/09/23 PHP
PHP.ini安全配置检测工具pcc简单介绍
2015/07/02 PHP
Zend Framework教程之Application用法实例详解
2016/03/14 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
jQuery Clone Bug解决代码
2010/12/22 Javascript
用JQuery模仿淘宝的图片放大镜显示效果
2011/09/15 Javascript
jquery实现图片翻页效果
2013/12/23 Javascript
jquery组件使用中遇到的问题整理及解决
2014/02/21 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
深入理解JavaScript中的尾调用(Tail Call)
2017/02/07 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
浅谈angularJS的$watch失效问题的解决方案
2017/08/11 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
JavaScript代码压缩工具UglifyJS和Google Closure Compiler的基本用法
2020/04/13 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
Python通过websocket与js客户端通信示例分析
2014/06/25 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python中线程和进程有何区别
2020/06/17 Python
matplotlib grid()设置网格线外观的实现
2021/02/22 Python
会计岗位职责模板
2014/03/12 职场文书
助学贷款贫困证明
2014/09/23 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
首都博物馆观后感
2015/06/05 职场文书
德生BCL3000抢先使用感受和评价
2022/04/07 无线电