最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在Vue中使用debouce防抖函數(shù)

 更新時(shí)間:2021年12月14日 10:28:42   作者:太_2_真_人  
本文主要介紹在Vue中使用debouce防抖函數(shù),設(shè)置一個(gè)門(mén)檻值,表示兩次?Ajax?通信的最小間隔時(shí)間。如果在間隔時(shí)間內(nèi),發(fā)生新的keydown事件,則不觸發(fā)?Ajax?通信,并且重新開(kāi)始計(jì)時(shí)。如果過(guò)了指定時(shí)間,沒(méi)有發(fā)生新的keydown事件再將數(shù)據(jù)發(fā)送出去,這便是debouce防抖函數(shù)

1.防抖函數(shù)

假定兩次 Ajax 通信的間隔不得小于2500毫秒,上面的代碼可以改寫(xiě)成下面這樣。

$('textarea').on('keydown', debounce(ajaxAction, 2500));

function debounce(fn, delay){
  var timer = null; // 聲明計(jì)時(shí)器
  return function() {
    var context = this;
    var args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function () {
      fn.apply(context, args);
    }, delay);
  };
}

上面代碼中,只要在2500毫秒之內(nèi),用戶(hù)再次擊鍵,就會(huì)取消上一次的定時(shí)器,然后再新建一個(gè)定時(shí)器。這樣就保證了回調(diào)函數(shù)之間的調(diào)用間隔,至少是2500毫秒。

2.Vue中使用debouce防抖函數(shù)

創(chuàng)建一個(gè) debounced(防抖動(dòng))函數(shù),該函數(shù)會(huì)從上一次被調(diào)用后,延遲 wait 毫秒后調(diào)用 func 方法。 debounced(防抖動(dòng))函數(shù)提供一個(gè) cancel 方法取消延遲的函數(shù)調(diào)用以及 flush 方法立即調(diào)用。 可以提供一個(gè) options(選項(xiàng)) 對(duì)象決定如何調(diào)用 func 方法,options.leading 與|或 options.trailing 決定延遲前后如何觸發(fā)

(注:是 先調(diào)用后等待 還是 先等待后調(diào)用)。

?func 調(diào)用時(shí)會(huì)傳入最后一次提供給 debounced(防抖動(dòng))函數(shù) 的參數(shù)。 后續(xù)調(diào)用的 debounced(防抖動(dòng))函數(shù)返回是最后一次 func 調(diào)用的結(jié)果。

Lodash debouce參數(shù):

  • func? (Function) : 要防抖動(dòng)的函數(shù)。
  • [wait=0]? (number) : 需要延遲的毫秒數(shù)。
  • [options=]? (Object) : 選項(xiàng)對(duì)象。
  • [options.leading=false]? (boolean) : 指定在延遲開(kāi)始前調(diào)用。
  • [options.maxWait]? (number) : 設(shè)置 func 允許被延遲的最大值。
  • [options.trailing=true]? (boolean) : 指定在延遲結(jié)束后調(diào)用。
<template>
<el-input
    v-model="value"
    size="mini"
    placeholder="請(qǐng)輸入.."
    clearable
    @keydown.enter="handleSearch"
  ></el-input>
</template>
<script>
import _ from 'lodash'
export default {
data() {
    return { value: '' }
},
create() {
    this.handleSearch = _.debounce(() => {
      // 獲取列表
      this.getList();
    }, 300);
},
beforeDestroy() {
    // 取消該函數(shù)的防抖動(dòng)調(diào)用
    this.handleSearch.cancel();
},
}
</script>

到此這篇關(guān)于如何在Vue中使用debouce防抖函數(shù)的文章就介紹到這了,更多相關(guān)Vue中使用debouce防抖函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

和田县| 芜湖县| 扬州市| 连南| 鄂尔多斯市| 兰溪市| 浦县| 青岛市| 凤山市| 水城县| 长顺县| 社旗县| 阿拉善盟| 嘉定区| 曲阳县| 民勤县| 丹巴县| 城固县| 清远市| 万荣县| 什邡市| 稷山县| 高密市| 襄垣县| 上饶县| 耿马| 翁源县| 古浪县| 偏关县| 浦江县| 保靖县| 广元市| 门头沟区| 长治县| 双鸭山市| 登封市| 治多县| 恭城| 延庆县| 肃宁县| 岫岩|