您的位置:首页 > 财经 > 金融 > 外贸公司经营范围大全_如何把自己做的网站放到内网_免费发布信息网_关键词查网站

外贸公司经营范围大全_如何把自己做的网站放到内网_免费发布信息网_关键词查网站

2025/1/3 2:02:31 来源:https://blog.csdn.net/Funky_oaNiu/article/details/142845773  浏览:    关键词:外贸公司经营范围大全_如何把自己做的网站放到内网_免费发布信息网_关键词查网站
外贸公司经营范围大全_如何把自己做的网站放到内网_免费发布信息网_关键词查网站

本文列两种方式,推荐第一种,经过长时间测试第二种防止的还是会漏,这里也列一下

①使用定时器(推荐)

判断3秒钟之内方法只能执行一次

<el-button @click="handleClick" type="primary" :loading="formLoading">确 定</el-button>
// 定义按钮禁用变量,这里禁用了如果点的快还是能点两次,所以下面再定义一个定时器
const formLoading = ref(false)// 定时器防止重复执行
const handleClick = () => {if (!isCooldown.value) {// 设置为冷却状态isCooldown.value = true; // 执行业务逻辑submitForm(); // 设置定时器,3秒后解除冷却状态setTimeout(() => {isCooldown.value = false;}, 3000);} else {message.warning('点太快啦')}
};// 业务逻辑函数,提交、保存、修改等等
const submitForm = async () => {formLoading.value = true// ......各种自己的业务逻辑formLoading.value = false
}

②Vue3自定义指令

很多帖子都写的这种方式,我试着会漏,并且偶尔会导致其他按钮不可用,还是第一种方式简单粗暴可靠

main.ts

  const app = createApp(App)// 注册自定义指令 v-prevent-reclickapp.directive('prevent-reclick', {beforeMount(el, binding) {el.disabled = false; // 初始化时启用按钮el.addEventListener('click', () => {el.disabled = true; // 点击后禁用按钮setTimeout(() => {el.disabled = false; // 在指定的时间后重新启用按钮}, binding.value || 2000); // 使用 binding.value 来设置等待时间,默认为 2000 毫秒});},unmounted(el) {// 组件卸载时移除事件监听器el.removeEventListener('click');},});

.vue文件

<el-button @click="handleClick" type="primary" v-prevent-reclick="2000">确 定</el-button>

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com