在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国旗变换效果代码
Aug 13 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
Aug 25 Javascript
javascript中的深复制详解及实例分析
Dec 29 Javascript
详解Node.js串行化流程控制
May 04 Javascript
Easyui和zTree两种方式分别实现树形下拉框
Aug 04 Javascript
Node.js服务器开启Gzip压缩教程
Aug 11 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
JavaScript函数、闭包、原型、面向对象学习笔记
Sep 06 Javascript
微信小程序(订阅消息)功能
Oct 25 Javascript
ant design vue中表格指定格式渲染方式
Oct 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设计模式 Adapter(适配器模式)
2011/06/26 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
Yii学习总结之数据访问对象 (DAO)
2015/02/22 PHP
php简单获取文件扩展名的方法
2015/03/24 PHP
php简单日历函数
2015/10/28 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
javascript字符串拼接的效率问题
2010/12/25 Javascript
$.format,jquery.format 使用说明
2011/07/13 Javascript
javascript实现文本域写入字符时限定字数
2014/02/12 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
JS实现随机乱撞彩色圆球特效的方法
2015/05/05 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
详解用函数式编程对JavaScript进行断舍离
2017/09/18 Javascript
vuex的简单使用教程
2018/02/02 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
解决在layer.open中使用时间控件laydate失败的问题
2019/09/11 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue keep-alive 动态删除组件缓存的例子
2019/11/04 Javascript
JavaScript正则表达式验证登录实例
2020/03/18 Javascript
vue 实现动态路由的方法
2020/07/06 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
2020/07/21 Javascript
Python三级菜单的实例
2017/09/13 Python
Python3批量生成带logo的二维码方法
2019/06/24 Python
python KNN算法实现鸢尾花数据集分类
2019/10/24 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
法国最大的在线眼镜店:EasyLunettes
2019/08/26 全球购物
大学生简单自荐信
2013/11/10 职场文书
英语商务邀请函范文
2014/01/16 职场文书
小学校长汇报材料
2014/08/20 职场文书
庆祝新中国成立65周年“向国旗敬礼”网上签名寄语
2014/09/27 职场文书
2014年居委会工作总结
2014/12/09 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript