千家信息网

怎么在Vue中使用debouce防抖函数

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,小编给大家分享一下怎么在Vue中使用debouce防抖函数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.防抖函数假定两次 Ajax 通信的间隔不得小于2500毫秒,上面的代码可以
千家信息网最后更新 2025年02月02日怎么在Vue中使用debouce防抖函数

小编给大家分享一下怎么在Vue中使用debouce防抖函数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

1.防抖函数

假定两次 Ajax 通信的间隔不得小于2500毫秒,上面的代码可以改写成下面这样。

$('textarea').on('keydown', debounce(ajaxAction, 2500));function debounce(fn, delay){  var timer = null; // 声明计时器  return function() {    var context = this;    var args = arguments;    clearTimeout(timer);    timer = setTimeout(function () {      fn.apply(context, args);    }, delay);  };}

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

2.Vue中使用debouce防抖函数

创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。 debounced(防抖动)函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。 可以提供一个 options(选项) 对象决定如何调用 func 方法,options.leading 与|或 options.trailing 决定延迟前后如何触发

(注:是 先调用后等待 还是 先等待后调用)。

func 调用时会传入最后一次提供给 debounced(防抖动)函数 的参数。 后续调用的 debounced(防抖动)函数返回是最后一次 func 调用的结果。

Lodash debouce参数:

  • func (Function) : 要防抖动的函数。

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

  • [options=] (Object) : 选项对象。

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

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

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

看完了这篇文章,相信你对"怎么在Vue中使用debouce防抖函数"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

0