vue封装防重复点击事件,并全局挂载使用

一、 vue3.0封装防重复点击事件

1、创建防重复点击的js文件,在js文件中添加防重复点击的方法

在utils文件夹中(可以和普通工具类存放一起,也可以按自己需求存放)创建js文件 preventReClick.js

javascript 复制代码
// 防止处理多次点击
function noMultipleClicks(methods, info) {
    // methods是需要点击后需要执行的函数, info是点击需要传的参数
    let that = this;
    if (that.noClick) {
        // 第一次点击
        that.noClick= false;
        if(info && info !== '') {
            // info是执行函数需要传的参数
            methods(info);
        } else {
            methods();
        }
        setTimeout(()=> {
            that.noClick= true;
        }, 1000)//时间可以自己定义
    } else {
        // 这里是重复点击的判断
    }
}
//导出
export default {
    noMultipleClicks,//禁止多次点击
}

二、在main.js中全局挂载防重复点击方法

javascript 复制代码
import Vue from 'vue' 
  //配置全局属性
  
Vue.prototype.$preventReClick = preventReClick.noMultipleClicks;

三、在页面中使用

javascript 复制代码
<template>
 <button class="submit-style" @click="this.$preventReClick(submitBtn)">提交</button>
</template>

<script setup>
data() {
			return {
				noClick: true, //防止重复点击字段
			};
		},
</script>
相关推荐
Dxy12393102161 天前
HTML中的伪类详解:从基础到高级应用的全面指南
前端·html
Dxy12393102161 天前
HTML中如何设置元素样式:从基础到进阶的完整指南
前端·html
村头的猫1 天前
JWT 令牌的工作原理,结构和签名验证
前端·数据库·经验分享·微服务
pe7er1 天前
window管理开发环境篇 - 持续更新
前端·后端
We་ct1 天前
LeetCode 5. 最长回文子串:DP + 中心扩展
前端·javascript·算法·leetcode·typescript
陈随易1 天前
有生之年系列,Nodejs进程管理pm2 v7.0发布
前端·后端·程序员
冰暮流星1 天前
javascript之事件代理/事件委托
前端
@yanyu6661 天前
登录注册功能-明文
vue.js·springboot
陈随易1 天前
AI时代,你还在坚持手搓文章吗
前端·后端·程序员
里欧跑得慢1 天前
17. Flutter Hero动画实现:让界面过渡更加优雅
前端·css·flutter·web