在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 相关文章推荐
Jquery知识点三 jquery表单对象操作
Jan 17 Javascript
javascript中判断一个值是否在数组中并没有直接使用
Dec 17 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
Dec 25 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
Feb 06 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
Apr 03 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
Oct 10 Javascript
jquery easyui如何实现格式化列
Jul 30 jQuery
angular2实现统一的http请求头方法
Aug 13 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
Oct 18 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
在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
PHP getDocNamespaces()函数讲解
2019/02/03 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
如何取得中文输入的真实长度?
2006/06/24 Javascript
JavaScript基础语法、dom操作树及document对象
2014/12/02 Javascript
jQuery对象与DOM对象之间的相互转换
2015/03/03 Javascript
基于jquery实现的自动补全功能
2015/03/12 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
js+html5实现可在手机上玩的拼图游戏
2015/07/17 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue 项目@change多个参数传值多个事件的操作
2021/01/29 Vue.js
Python基于twisted实现简单的web服务器
2014/09/29 Python
Python内置函数dir详解
2015/04/14 Python
Python中类的定义、继承及使用对象实例详解
2015/04/30 Python
python 匹配url中是否存在IP地址的方法
2018/06/04 Python
基于python实现聊天室程序
2018/07/27 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
python利用Excel读取和存储测试数据完成接口自动化教程
2020/04/30 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
利用CSS3实现毛玻璃效果示例源码
2016/09/25 HTML / CSS
Eyeko美国:屡获殊荣的睫毛膏、眼线笔和眉妆
2018/07/05 全球购物
怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返回 指向字符的指针的函数的指针的数组?
2013/03/19 面试题
Internal修饰符有什么含义
2013/07/10 面试题
新书吧创业计划书
2014/01/31 职场文书
3分钟演讲稿
2014/04/30 职场文书
出国留学担保书
2014/05/20 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
改革共识倡议书
2014/08/29 职场文书
财务管理专业自荐书
2014/09/02 职场文书
给下属加薪申请报告
2015/05/15 职场文书
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL