在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 相关文章推荐
自己开发Dojo的建议框架
Sep 24 Javascript
Jquery公告滚动+AJAX后台得到数据
Apr 14 Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 Javascript
jQuery手机浏览器中拖拽动作的艰难性分析
Feb 04 Javascript
学习使用AngularJS文件上传控件
Feb 16 Javascript
jquery获取input type=text中的值的各种方式(总结)
Dec 02 Javascript
jQuery Form表单取值的方法
Jan 11 Javascript
HTML5实现微信拍摄上传照片功能
Apr 21 Javascript
JS基于递归实现网页版计算器的方法分析
Dec 20 Javascript
json数据传到前台并解析展示成列表的方法
Aug 06 Javascript
JavaScript+HTML5 canvas实现放大镜效果完整示例
May 15 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
Jun 01 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
html中select语句读取mysql表中内容
2006/10/09 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
2013/06/03 PHP
php中文验证码实现示例分享
2014/01/12 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
深入分析PHP引用(&amp;)
2014/09/04 PHP
javascript 正则表达式相关应介绍
2012/11/27 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
window.print打印指定div指定网页指定区域的方法
2014/08/04 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
jQuery实现最简单实用的分秒倒计时
2017/02/05 Javascript
基于Vuejs和Element的注册插件的编写方法
2017/07/03 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
如何通过vscode运行调试javascript代码
2020/07/24 Javascript
Python实现线程池代码分享
2015/06/21 Python
深入讲解Python编程中的字符串
2015/10/14 Python
Python简单格式化时间的方法【strftime函数】
2016/09/18 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
Python扩展内置类型详解
2018/03/26 Python
Atom的python插件和常用插件说明
2018/07/08 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Django组件content-type使用方法详解
2019/07/19 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
实现向右循环移位
2014/07/31 面试题
网络安全类面试题
2015/08/01 面试题
Windows和Linux动态库应用异同
2016/04/17 面试题
自荐信模版
2013/10/24 职场文书
高中打架检讨书
2014/02/13 职场文书
入党心得体会
2019/06/20 职场文书