新建文件夹及文件
src\directives\preventReClick\index.ts
import { Directive, type DirectiveBinding } from "vue";
export const preventReClick: Directive = {
mounted(el, binding: DirectiveBinding) {
el.addEventListener("click", () => {
if (!el.disabled) {
el.disabled = true;
setTimeout(() => {
el.disabled = false;
}, binding.value || 3000);
}
});
}
};
在src\directives\index.ts中新增代码,注入指令
export * from "./preventReClick";
在页面中,具体使用方法,给按钮增加v-prevent-re-click
<el-button
@click="clickFun"
v-prevent-re-click
>
按钮
</el-button>