创建一个 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) : 指定在延迟结束后调用。
<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() {
// 取消该函数的防抖动调用
this.handleSearch.cancel();
},
}
</script>