自定义指令: 防抖

防止按钮在短时间内被点击多次,使用节流限制规定时间内只能触发一次。默认延时为 200ms

基础用法

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

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

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

  const { proxy } = getCurrentInstance();

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

输入框使用

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

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

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

  const { proxy } = getCurrentInstance();

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

自定义延迟时间

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

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

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

  const { proxy } = getCurrentInstance();

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