欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.防抖函數(shù)

假定兩次 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毫秒之內(nèi),用戶再次擊鍵,就會取消上一次的定時器,然后再新建一個定時器。這樣就保證了回調(diào)函數(shù)之間的調(diào)用間隔,至少是2500毫秒。

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

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

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

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

Lodash debouce參數(shù):

  • func? (Function) : 要防抖動的函數(shù)。
  • [wait=0]? (number) : 需要延遲的毫秒數(shù)。
  • [options=]? (Object) : 選項對象。
  • [options.leading=false]? (boolean) : 指定在延遲開始前調(diào)用。
  • [options.maxWait]? (number) : 設(shè)置 func 允許被延遲的最大值。
  • [options.trailing=true]? (boolean) : 指定在延遲結(jié)束后調(diào)用。
<template>
<el-input
    v-model="value"
    size="mini"
    placeholder="請輸入.."
    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ù)的防抖動調(diào)用
    this.handleSearch.cancel();
},
}
</script>

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

相關(guān)文章

  • 詳解基于Vue-cli搭建的項目如何和后臺交互

    詳解基于Vue-cli搭建的項目如何和后臺交互

    這篇文章主要介紹了詳解基于Vue-cli搭建的項目如何和后臺交互,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • vue3中refs用法舉例小結(jié)

    vue3中refs用法舉例小結(jié)

    這篇文章主要給大家介紹了關(guān)于vue3中refs用法舉例的相關(guān)資料,Vue.js中的$refs是一個對象,它持有已注冊過ref特性的所有組件和元素,需要的朋友可以參考下
    2023-08-08
  • TDesign在vitest的實踐示例詳解

    TDesign在vitest的實踐示例詳解

    這篇文章主要為大家介紹了TDesign在vitest的實踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版的示例代碼

    vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版的示例代碼

    本文分為html,js和css代碼給大家詳細(xì)介紹了vue Element-ui input 遠(yuǎn)程搜索與修改建議顯示模版功能,感興趣的朋友一起看看吧
    2017-10-10
  • vue中使用axios的作用

    vue中使用axios的作用

    Axios是一個功能強(qiáng)大、易用性高的HTTP庫,適用于大多數(shù)的前端項目,它提供了豐富的功能和靈活的配置選項,可以滿足不同項目的需求,這篇文章主要介紹了vue中使用axios的作用,需要的朋友可以參考下
    2023-08-08
  • vue3中ref綁定dom或者組件失敗的原因及分析

    vue3中ref綁定dom或者組件失敗的原因及分析

    這篇文章主要介紹了vue3中ref綁定dom或者組件失敗的原因及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3中使用Element?Plus時el-icon無法顯示的問題解決

    Vue3中使用Element?Plus時el-icon無法顯示的問題解決

    我們的Vue前端一般都是用的ElementUI,其中按鈕可能用到的比較多,官方里面有自帶的一些默認(rèn)圖標(biāo),下面這篇文章主要給大家介紹了關(guān)于Vue3中使用Element?Plus時el-icon無法顯示的問題解決,需要的朋友可以參考下
    2022-03-03
  • 在vue中使用echarts(折線圖的demo,markline用法)

    在vue中使用echarts(折線圖的demo,markline用法)

    這篇文章主要介紹了在vue中使用echarts(折線圖的demo,markline用法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue路由中前進(jìn)后退的一些事兒

    vue路由中前進(jìn)后退的一些事兒

    這篇文章主要給大家介紹了關(guān)于vue路由中前進(jìn)后退的一些事兒,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue路由具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Vue + Element UI 實現(xiàn)權(quán)限管理系統(tǒng)之菜單功能實現(xiàn)代碼

    Vue + Element UI 實現(xiàn)權(quán)限管理系統(tǒng)之菜單功能實現(xiàn)代碼

    菜單管理是一個對菜單樹結(jié)構(gòu)的增刪改查操作,這篇文章主要介紹了Vue + Element UI 實現(xiàn)權(quán)限管理系統(tǒng)之菜單功能實現(xiàn)代碼,需要的朋友可以參考下
    2022-02-02

最新評論