vue防重复点击(指令实现)

快速点击按钮会重复多次调用接口,防止出现这样的情况

全局定义,方便调用

新建plugins.js

export default {
  install (Vue) {
    // 防重复点击(指令实现)
    Vue.directive(‘preventReClick‘, {
      inserted (el, binding) {
        el.addEventListener(‘click‘, () => {
          if (!el.disabled) {
            el.disabled = true
            setTimeout(() => {
              el.disabled = false
            }, binding.value || 3000)
          }
        })
      }
    })
  }
}

在main.js引用

按钮调用直接加v-preventReClick

<el-button type="prismary" style="width:100%;" @click="handleSubmit" v-preventReClick></el-button>

亲测可用

原文地址:https://www.cnblogs.com/adbg/p/11271237.html

时间: 2024-10-14 13:52:12

vue防重复点击(指令实现)的相关文章

.net C# 利用Session防重复点击防重复提交

<body>    <form id="form1" runat="server">    <div>        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />        <br />        <

[转]Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件

Android ListView最佳处理方式,ListView拖动防重复数据显示,单击响应子控件. 1.为了防止拖动ListView时,在列表末尾重复数据显示.需要加入 HashMap<Integer,View> lmap = new HashMap<Integer,View>();其中Integer为列表位置,View为子项视图,加入数据前首先if (lmap.get(position)==null) ,满足条件时,加入lmap.put(position, convertView

struts2学习(15)struts2防重复提交

一.重复提交的例子: 模拟一种情况,存在延时啊,系统比较繁忙啊啥的. 模拟延迟5s钟,用户点了一次提交,又点了一次提交,例子中模拟这种情况: 这样会造成重复提交: com.cy.action.StudentAction.java: package com.cy.action; import java.io.File; import org.apache.commons.io.FileUtils; import com.cy.model.Student; import com.opensympho

防重复提交

// 防重复提交 定义全局变量 var checkingCorrespondflg = false; =============== 点击提交判断 if (!checkingCorrespondflg) { checkingCorrespondflg = true; } else { return false; } =============== 出错之后设置 checkingCorrespondflg = false;

手撸一个Vue滚动加载自定义指令

用Vue在移动端做滚动加载,使用mint-ui框架, InfiniteScroll指令loadmore组件,在uc浏览器和qq浏览器都无法触发.无奈我只能自己写了. 决定用vue 的自定义指令 写滚动加载. 核心的api document.body.scrollTop 滚动条滚动的距离 (这个有兼容性问题,兼容性写法) let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body

按钮重复点击解决方案

防止重复提交,通用的思路,就是当用户点击提交按钮后,在浏览器中用JS将按钮disable掉,从而阻止用户继续点击该按钮,实现防止重复提交的目的.网上防止重复提交的文章已经不少了,为啥我还要写呢,显然我不是吃饱了撑的...最近一个客户,老抱怨每个月总有几条重复的业务数据:但创建该业务数据的页面,我们已经应用了常规的防重复提交技术,为啥还这样呢-- 1. 常规防重复提交 <asp:Button runat="server" ID="btnPostBack1" Te

Vue基础进阶 之 自定义指令

自定义指令-----钩子函数 自定义指令 除了内置指令,Vue也允许用户自定义指令: 注册指令:通过全局API Vue.directive可以注册自定义指令: 自定义指令的钩子函数: bind: inserted: update: componentUpdated: unbind: 自定义指令的使用:在自定指令的名称前加 上 v-: 自定义指令的详细介绍网址:https://cn.vuejs.org/v2/guide/custom-directive.html 下面是关于这个5个钩子函数的示例:

防重复提交实现方案

在WEB系统操作中,往往会出现用户连续重复点击一个按钮导致重复提交,后台程序的同一个接口代码往往上一个请求还没执行完,下一个请求就到达了,而这两个请求又是请求和操作的同一条数据,就会出现业务上的逻辑错误,往往结果不可预料: 要解决重复提交带来的问题的解决方案有多种,不如网上有很多介绍怎么通过前端页面控制来解决重复提交,当然还有其他方式,这里我采用了通过后台程序代码利用redis做分布式锁的方式来防止重复提交,其思路就是在进入一个后端接口执行前先获取一个分布式锁,如果获取成功则上锁,然后执行业务代

iOS小技巧--用runtime 解决UIButton 重复点击问题

iOS小技巧–用runtime 解决UIButton 重复点击问题 什么是这个问题 我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决 我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击. - (IBAction)clickBtn1:(UIbutton *)sender { sender.enabled = NO; doSomething sender.enabled