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
        >
相关推荐
工业3D_大熊1 分钟前
3D Web轻量化引擎HOOPS Communicator赋能一线场景,支持本地化与动态展示?
前端·3d
某人的小眼睛5 分钟前
vue3 element-plus 大文件切片上传
前端·vue.js
东坡白菜8 分钟前
最快实现的前端灰度方案
前端
curdcv_po11 分钟前
🔴 你老说拿下 react,真的 拿下 了吗
前端
魔都吴所谓12 分钟前
[前端]HTML模拟实现一个基于摄像头的手势识别交互页面
前端·html·交互
来自星星的猫教授14 分钟前
Vue 3.6前瞻:响应式性能革命与Vapor模式展望
前端·javascript·vue.js
涵信18 分钟前
第九节 高频代码题-实现Sleep函数(异步控制)
前端·javascript·typescript
Kusunoki_D33 分钟前
Python 实现 Web 静态服务器(HTTP 协议)
服务器·前端·python
爱学习的茄子42 分钟前
【前端实战】三分钟掌握原生JS电影搜索应用,从此告别框架依赖
前端·javascript·深度学习
林太白44 分钟前
Next.js超简洁完整篇
前端·后端·react.js