在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 页面自动加载函数(兼容多浏览器)
May 18 Javascript
javascript 三种编解码方式
Feb 01 Javascript
Extjs Ext.MessageBox.confirm 确认对话框详解
Apr 02 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件
Dec 21 Javascript
js导出格式化的excel 实例方法
Jul 17 Javascript
ListBox实现上移,下移,左移,右移的简单实例
Feb 13 Javascript
js判断变量初始化的三种形式及推荐用的形式
Jul 22 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 Javascript
JavaScript模块化之使用requireJS按需加载
Apr 12 Javascript
vue中实现在外部调用methods的方法(推荐)
Feb 08 Javascript
Postman无法正常返回结果问题解决
Aug 28 Javascript
vue路由的配置和页面切换详解
Sep 09 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实现TCP端口检测的方法
2015/04/01 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
2017/09/16 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
jQuery的三种$()
2009/12/30 Javascript
JavaScript类和继承 constructor属性
2010/03/04 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
Jquery实现侧边栏跟随滚动条固定(兼容IE6)
2014/04/02 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
js原生代码实现轮播图的实例讲解
2017/07/28 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
Python面向对象之继承代码详解
2018/01/29 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
opencv之为图像添加边界的方法示例
2019/12/26 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
解决python和pycharm安装gmpy2 出现ERROR的问题
2020/08/28 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
一份比较全的PHP面试题
2016/07/29 面试题
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
汽车机电维修工求职信
2014/09/30 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
P站美图推荐——变身女主角特辑
2022/03/20 日漫
关于Vue中的options选项
2022/03/22 Vue.js