如何在Vue中使用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 JS對URL網(wǎng)址進(jìn)行編碼解碼,轉(zhuǎn)換為對象方式
這篇文章主要介紹了Vue JS對URL網(wǎng)址進(jìn)行編碼解碼,轉(zhuǎn)換為對象方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
vue Cli 環(huán)境刪除與重裝教程 - 版本文檔
這篇文章主要介紹了vue Cli 環(huán)境刪除與重裝教程 - 版本文檔,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
移動端滑動切換組件封裝 vue-swiper-router實例詳解
這篇文章主要介紹了移動端滑動切換組件封裝 vue-swiper-router實例詳解,需要的朋友可以參考下2018-11-11
vue動態(tài)生成新表單并且添加驗證校驗規(guī)則方式
這篇文章主要介紹了vue動態(tài)生成新表單并且添加驗證校驗規(guī)則方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
從0搭建Vue3組件庫如何使用?glup?打包組件庫并實現(xiàn)按需加載
這篇文章主要介紹了從0搭建Vue3組件庫如何使用?glup?打包組件庫并實現(xiàn)按需加載,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03

