自定义指令: 防抖

多次点击按钮、输入框中输入文字搜索,会多次调用后端接口,防止多次触发。默认延时为 200ms

基础用法

在需要的 dom 上,使用 v-debounce 自定义指令,需要指定触发的 click 事件

<template>
  <Button v-debounce:click="search">搜索</Button>
</template>

<script setup>
  import { getCurrentInstance } from 'vue';

  const { proxy } = getCurrentInstance();

  const search = () => {
    proxy.$Message.info('搜索');
  };
</script>

输入框使用

在需要的 dom 上,使用 v-debounce 自定义指令,需要指定触发的 input 事件

<template>
  <Input v-debounce:input="search">搜索</Input>
</template>

<script setup>
  import { getCurrentInstance } from 'vue';

  const { proxy } = getCurrentInstance();

  const search = () => {
    proxy.$Message.info('搜索');
  };
</script>

自定义延迟时间

在需要的 dom 上,使用 v-debounce 自定义指令,需要指定触发的事件,传入回调的 fun 和 延迟时间 delay 毫秒

<template>
  <Button v-debounce:click="{ fun: search, delay: 1000 }">搜索</Button>
</template>

<script setup>
  import { getCurrentInstance } from 'vue';

  const { proxy } = getCurrentInstance();

  const search = () => {
    proxy.$Message.info('搜索');
  };
</script>
上次更新:
贡献者: zml