父组件使用
<DebounceButton key="submitForm" @click="submitForm(1)" type="success" :loading="tempLoading" plain>保存</DebounceButton>
子组件
<template>
<el-button v-bind="attrs" @click="_handleClick">
<slot></slot>
</el-button>
</template>
<script lang="ts" setup>
import { useAttrs } from 'vue';
import { debounce } from 'lodash';
const attrs = useAttrs();
// delay 点击 防抖延时时间
const delay:any = attrs?.delay || 1000;
const emits = defineEmits(['click']);
const handleClick = ($evt) => {
emits('click', $evt);
};
const _handleClick = debounce(handleClick, delay, { leading: true, trailing: false });
</script>