在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 相关文章推荐
js 事件小结 表格区别
Aug 13 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
Mar 28 Javascript
JavaScript SHA1加密算法实现详细代码
Oct 06 Javascript
JS作用域链详解
Jun 26 Javascript
浅析JS中常用类型转换及运算符表达式
Jul 23 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
ES6解构赋值的功能与用途实例分析
Oct 31 Javascript
浅谈Emergence.js 检测元素可见性的 js 插件
Nov 18 Javascript
angular2 ng2-file-upload上传示例代码
Aug 23 Javascript
js中对象和面向对象与Json介绍
Jan 21 Javascript
Nuxt页面级缓存的实现
Mar 09 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 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 向访客和爬虫显示不同的内容
2009/11/09 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
2015/05/09 PHP
php的socket编程详解
2016/11/20 PHP
PHP jpgraph库的配置及生成统计图表:折线图、柱状图、饼状图
2017/05/15 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
JavaScript中的作用域链和闭包
2012/06/30 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
href下载文件根据id取url并下载
2014/05/28 Javascript
自己动手写的jquery分页控件(非常简单实用)
2015/10/28 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
jQuery实现内容定时切换效果完整实例
2016/04/06 Javascript
非常棒的jQuery图片轮播效果
2016/04/17 Javascript
Node.js如何使用Diffie-Hellman密钥交换算法详解
2017/09/05 Javascript
vue2.0.js的多级联动选择器实现方法
2018/02/09 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
vue.config.js中配置Vue的路径别名的方法
2020/02/11 Javascript
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
python selenium登录豆瓣网过程解析
2019/08/10 Python
Python操作qml对象过程详解
2019/09/26 Python
python 求10个数的平均数实例
2019/12/16 Python
python 遗传算法求函数极值的实现代码
2020/02/11 Python
Django-imagekit的使用详解
2020/07/06 Python
Python使用Pygame绘制时钟
2020/11/29 Python
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
澳大利亚时尚前卫设计师珠宝在线:Amber Sceats
2017/10/04 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
行政部岗位职责范本
2014/03/13 职场文书
学校节能减排方案
2014/06/13 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
村主任当选感言
2015/08/01 职场文书
学习心理学心得体会
2016/01/22 职场文书