vue3 element plus增加指令,防止多次点击

162 阅读1分钟

新建文件夹及文件 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>