在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中函数声明优先于变量声明的实例分析
Mar 01 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
Web程序员必备的7个JavaScript函数
Jun 14 Javascript
Vue.js对象转换实例
Jun 07 Javascript
深入解析Vue 组件命名那些事
Jul 18 Javascript
vue 项目如何引入微信sdk接口的方法
Dec 18 Javascript
React中如何引入Angular组件详解
Aug 09 Javascript
解决Vue 刷新页面导航显示高亮位置不对问题
Dec 25 Javascript
JavaScript实现联动菜单特效
Jan 07 Javascript
vue2路由方式--嵌套路由实现方法分析
Mar 06 Javascript
Vue项目中使用flow做类型检测的方法
Mar 18 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多线程抓取网页实现代码
2010/07/22 PHP
php中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
laravel框架如何设置公共头和公共尾
2019/10/22 PHP
jquery遍历checkbox介绍
2014/02/21 Javascript
jQuery trigger()方法用法介绍
2015/01/13 Javascript
javascript 数组操作详解
2015/01/29 Javascript
jquery 实现回车登录详解及实例代码
2016/10/23 Javascript
js 打开新页面在屏幕中间的实现方法
2016/11/02 Javascript
Bootstrap源码解读按钮(5)
2016/12/23 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
js实现登录拖拽窗口
2020/02/10 Javascript
使用Vue实现一个树组件的示例
2020/11/06 Javascript
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Python简单基础小程序的实例代码
2019/04/28 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
Python extract及contains方法代码实例
2020/09/11 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
Gina Bacconi官网:吉娜贝康尼连衣裙和礼服
2018/04/24 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
回门宴父母答谢词
2014/01/26 职场文书
2014年清明节寄语
2014/04/03 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
学校纪律作风整改措施思想汇报
2014/10/11 职场文书
大二学年个人总结
2015/03/03 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书
市级三好生竞选稿
2015/11/21 职场文书
如何书写你的职业生涯规划书?
2019/06/27 职场文书