如何在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毫秒之內,用戶再次擊鍵,就會取消上一次的定時器,然后再新建一個定時器。這樣就保證了回調函數(shù)之間的調用間隔,至少是2500毫秒。
2.Vue中使用debouce防抖函數(shù)
創(chuàng)建一個 debounced(防抖動)函數(shù),該函數(shù)會從上一次被調用后,延遲 wait 毫秒后調用 func 方法。 debounced(防抖動)函數(shù)提供一個 cancel 方法取消延遲的函數(shù)調用以及 flush 方法立即調用。 可以提供一個 options(選項) 對象決定如何調用 func 方法,options.leading 與|或 options.trailing 決定延遲前后如何觸發(fā)
(注:是 先調用后等待 還是 先等待后調用)。
?func 調用時會傳入最后一次提供給 debounced(防抖動)函數(shù) 的參數(shù)。 后續(xù)調用的 debounced(防抖動)函數(shù)返回是最后一次 func 調用的結果。
Lodash debouce參數(shù):
func? (Function): 要防抖動的函數(shù)。[wait=0]? (number): 需要延遲的毫秒數(shù)。[options=]? (Object): 選項對象。[options.leading=false]? (boolean): 指定在延遲開始前調用。[options.maxWait]? (number): 設置 func 允許被延遲的最大值。[options.trailing=true]? (boolean): 指定在延遲結束后調用。
<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ù)的防抖動調用
this.handleSearch.cancel();
},
}
</script>
到此這篇關于如何在Vue中使用debouce防抖函數(shù)的文章就介紹到這了,更多相關Vue中使用debouce防抖函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue Element-ui input 遠程搜索與修改建議顯示模版的示例代碼
本文分為html,js和css代碼給大家詳細介紹了vue Element-ui input 遠程搜索與修改建議顯示模版功能,感興趣的朋友一起看看吧2017-10-10
Vue3中使用Element?Plus時el-icon無法顯示的問題解決
我們的Vue前端一般都是用的ElementUI,其中按鈕可能用到的比較多,官方里面有自帶的一些默認圖標,下面這篇文章主要給大家介紹了關于Vue3中使用Element?Plus時el-icon無法顯示的問題解決,需要的朋友可以參考下2022-03-03
在vue中使用echarts(折線圖的demo,markline用法)
這篇文章主要介紹了在vue中使用echarts(折線圖的demo,markline用法),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07
Vue + Element UI 實現(xiàn)權限管理系統(tǒng)之菜單功能實現(xiàn)代碼
菜單管理是一個對菜單樹結構的增刪改查操作,這篇文章主要介紹了Vue + Element UI 實現(xiàn)權限管理系統(tǒng)之菜單功能實現(xiàn)代碼,需要的朋友可以參考下2022-02-02

