Vue中如何使用debouce防抖函数

创建一个 debounced(防抖动)函数,该函数会从上一次被调用后,延迟 wait 毫秒后调用 func 方法。 debounced(防抖动)函数提供一个 cancel 方法取消延迟的函数调用以及 flush 方法立即调用。 可以提供一个 options(选项) 对象决定如何调用 func 方法,options.leading 与|或 options.trailing 决定延迟前后如何触发(注:是 先调用后等待 还是 先等待后调用)。 func 调用时会传入最后一次提供给 debounced(防抖动)函数 的参数。 后续调用的 debounced(防抖动)函数返回是最后一次 func 调用的结果。

Lodash debouce参数

  1. func (Function) : 要防抖动的函数。
  2. [wait=0] (number) : 需要延迟的毫秒数。
  3. [options=] (Object) : 选项对象。
  4. [options.leading=false] (boolean) : 指定在延迟开始前调用。
  5. [options.maxWait] (number) : 设置 func 允许被延迟的最大值。
  6. [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>
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容