vue 提交表单重复点击,重复提交防抖问题

问题:用户点击保存时,可能会多次点击。导致生成重复数据。

目标:多次点击时,1s内只允许提交一次数据。

解决方案

1、创建js文件preventReClick.js

html 复制代码
export default {
    install (Vue) {
      // 防止按钮重复点击
      Vue.directive('preventReClick', {
        inserted (el, binding) {
          // console.log("binding-7", binding)
          el.addEventListener('click', () => {
            if (!el.disabled) {
              el.disabled = true
              setTimeout(() => {
                el.disabled = false
              }, binding.value || 2000)
            }
          })
        }
      })
    }
  }

2、在main.js中引入

html 复制代码
import Vue from 'vue';
import preventReClick from './preventReClick'
 
Vue.use(preventReClick);

3、在.vue 文件中使用

html 复制代码
<el-button
          type="primary"
          @click="submit()"
          v-preventReClick="1000"
          size="mini"
          >{{ $t("m.确定") }}</el-button
        >
相关推荐
搬砖码几秒前
优雅实现!自定义滚动刻度选择器,精准选择无压力
前端
盏茶作酒291 分钟前
打造自己的组件库(二)CSS工程化方案
前端
mwq301233 分钟前
AI编程工具:Claude Code安装和使用
前端·claude
gnip18 分钟前
项目开发流程之技术调用流程
前端·javascript
答案—answer18 分钟前
three.js编辑器2.0版本
javascript·three.js·three.js 编辑器·three.js性能优化·three.js模型编辑·three.js 粒子特效·three.js加载模型
转转技术团队32 分钟前
多代理混战?用 PAC(Proxy Auto-Config) 优雅切换代理场景
前端·后端·面试
南囝coding33 分钟前
这几个 Vibe Coding 经验,真的建议学!
前端·后端
gnip1 小时前
SSE技术介绍
前端·javascript
yinke小琪1 小时前
JavaScript DOM节点操作(增删改)常用方法
前端·javascript
枣把儿1 小时前
Vercel 收购 NuxtLabs!Nuxt UI Pro 即将免费!
前端·vue.js·nuxt.js