在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 操作cookies及正确使用cookies的属性
Oct 15 Javascript
Prototype源码浅析 String部分(三)之HTML字符串处理
Jan 15 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
Aug 21 Javascript
jQuery选择器中含有空格的使用示例及注意事项
Aug 25 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
详解微信小程序Page中data数据操作和函数调用
Sep 27 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
Sep 14 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
Nov 15 Javascript
原生JS实现的跳一跳小游戏完整实例
Jan 27 Javascript
JavaScript ES6常用基础知识总结
Feb 09 Javascript
vue elementUI 表单校验的实现代码(多层嵌套)
Nov 06 Javascript
js实现简单五子棋游戏
May 28 Javascript
在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的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
php常见的魔术方法详解
2014/12/25 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
基于jQuery实现歌词滚动版音乐播放器的代码
2016/09/17 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
jQuery图片切换动画效果
2017/02/28 Javascript
Javascript 详解封装from表单数据为json串进行ajax提交
2017/03/29 Javascript
vue路由拦截及页面跳转的设置方法
2018/05/24 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
如何使用50行javaScript代码实现简单版的call,apply,bind
2019/08/14 Javascript
JS回调函数简单易懂的入门实例分析
2019/09/29 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
python实现汉诺塔方法汇总
2016/07/25 Python
Python 对象中的数据类型
2017/05/13 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
Python 类的特殊成员解析
2018/06/20 Python
Python for循环搭配else常见问题解决
2020/02/11 Python
python中使用you-get库批量在线下载bilibili视频的教程
2020/03/10 Python
Django通过json格式收集主机信息
2020/05/29 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
Python基于execjs运行js过程解析
2020/11/27 Python
windows系统Tensorflow2.x简单安装记录(图文)
2021/01/18 Python
英国女士和男士时尚服装网上购物:Top Labels Online
2018/03/25 全球购物
国培教师自我鉴定
2014/02/12 职场文书
网络信息安全承诺书
2014/03/26 职场文书
篮球赛口号
2014/06/18 职场文书
2014年房地产个人工作总结
2014/12/20 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Java 超详细讲解hashCode方法
2022/04/07 Java/Android