js函数防抖debounce,vue自定义指令防抖

  js函数防抖debounce,vue自定义指令防抖

  主要介绍了在Vue中使用debouce防抖功能,设置一个阈值来表示两次Ajax通信的最小间隔时间。如果在间隔中发生了新的keydown事件,Ajax通信将不会被触发,计时将重新开始。如果在发送数据之前,经过了指定的时间,并且没有新的keydown事件发生,这就是去抖防抖功能。

  :

目录

   1.防抖功能2。2.Vue中使用了debouce防抖功能。

  

1.防抖函数

  假设Ajax通信之间的间隔不应该小于2500ms,上面的代码可以改写如下。

  $(textarea )。on(keydown ,去抖(ajaxAction,2500));

  功能去抖(fn,延迟){

  var timer=null//声明计时器

  返回函数(){

  var context=this

  var args=参数;

  clearTimeout(定时器);

  timer=setTimeout(function () {

  fn.apply(上下文,参数);

  },延迟);

  };

  }

  在上面的代码中,只要用户在2500ms内再次按键,就会取消上一个定时器,然后创建一个新的定时器。这确保了回调函数之间的调用间隔至少为2500毫秒。

  

2.Vue中使用debouce防抖函数

  创建一个去抖动(图像稳定器)函数,该函数将在最后一次调用等待毫秒后调用func方法。去抖动(图像稳定器)函数提供了取消延迟函数调用的取消方法和立即调用的刷新方法。您可以提供一个options对象来确定如何调用func方法,而options.leading和 or options.trailing确定如何在延迟之前和之后触发。

  (注意:是先打电话再等还是先等再打)。

  当func调用时,将传入提供给图像稳定器函数的最后一个参数。随后的去抖动(图像稳定器)函数返回最后一次func调用的结果。

  Lodash debouce参数:

  Func(函数):需要图像稳定器的函数。

  [wait=0] (number):延迟的毫秒数。

  [options=] (Object): Options对象。

  [options . leading=false](boolean):指定在延迟开始之前调用。

  [options.maxWait] (number):设置func允许延迟的最大值。

  [options . trailing=true](boolean):指定在延迟结束后调用。

  模板

  el输入

  v-model=值

  size=mini

  Placeholder=请输入.

  可清除的

  @keydown.enter=handleSearch

  /el-input

  /模板

  脚本

  从“lodash”导入

  导出默认值{

  data() {

  返回{值: }

  },

  创建(){

  this.handleSearch=_。去抖(()={

  //获取列表

  this . getlist();

  }, 300);

  },

  销毁前(){

  //取消该函数的图像稳定器调用

  this . handlesearch . cancel();

  },

  }

  /脚本

  关于如何在Vue中使用Debuce防抖功能的这篇文章到此为止。关于在Vue中使用Debuce防抖功能的更多信息,请搜索我们之前的文章或者继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: