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
        >
相关推荐
_Kayo_1 小时前
CSS BFC
前端·css
二哈喇子!2 小时前
Vue3 组合式API
前端·javascript·vue.js
二哈喇子!3 小时前
Vue 组件化开发
前端·javascript·vue.js
chxii4 小时前
2.9 插槽
前端·javascript·vue.js
姑苏洛言5 小时前
扫码点餐小程序产品需求分析与功能梳理
前端·javascript·后端
Freedom风间5 小时前
前端必学-完美组件封装原则
前端·javascript·设计模式
江城开朗的豌豆5 小时前
React表单控制秘籍:受控组件这样玩就对了!
前端·javascript·react.js
一枚前端小能手5 小时前
📋 代码片段管理大师 - 5个让你的代码复用率翻倍的管理技巧
前端·javascript
国家不保护废物5 小时前
Web Worker 多线程魔法:告别卡顿,轻松实现图片压缩!😎
前端·javascript·面试
接着奏乐接着舞。5 小时前
如何在Vue中使用拓扑图功能
前端·javascript·vue.js