相关文章推荐
失落的汽水  ·  Building a Real-Time ...·  1 月前    · 
彷徨的绿茶  ·  typescript,把一个对象数组转换成m ...·  1 年前    · 
慷慨大方的莲藕  ·  Java对IPv6的支持详解:支持情况、相关 ...·  2 年前    · 
眉毛粗的草稿纸  ·  大规模1.4亿中文知识图谱数据,我把它开源了 ...·  2 年前    · 
爱跑步的回锅肉  ·  skynet 定时器sleep与fork - 简书·  2 年前    · 
朝气蓬勃的沙发  ·  Python3 面向对象| 菜鸟教程·  2 年前    · 
Code  ›  实现 Vue 框架用户短时间内多次点击同一按钮仅触发一次开发者社区
框架 按钮 软件 vue
https://cloud.tencent.com/developer/article/2077046
豪气的感冒药
2 年前
作者头像
青年码农
0 篇文章

实现 Vue 框架用户短时间内多次点击同一按钮仅触发一次

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
社区首页 > 专栏 > 青年码农 > 实现 Vue 框架用户短时间内多次点击同一按钮仅触发一次

实现 Vue 框架用户短时间内多次点击同一按钮仅触发一次

作者头像
青年码农
发布 于 2022-08-19 11:02:54
1.8K 0
发布 于 2022-08-19 11:02:54
举报

点击上方“青年码农”关注

回复“源码”可获取各种资料

使用 Vue 框架开发项目中,遇到个问题,就是在用户提交数据时,如果连续多次点击按钮,会触发多次,导致数据异常,因此需要限制用户短时间内多次点击同一按钮,只触发一次。

1. 自定义指令

利用元素的 disabled 属性,新建自定义指令,preventClick.js

export default {
  install(Vue) {
    Vue.directive('preventClick', {
      inserted(button, bind) {
        button.addEventListener('click', () => {
          if (!button.disabled) {
            button.disabled = true;
            setTimeout(() => {
              but.disabled = false

在 main.js 中引入

组件中使用

2. 防抖函数

函数防抖的基本思想是设置一个定时器,在指定时间间隔内运行代码时清楚上一次的定时器,并设置另一个定时器,直到函数请求停止并超过时间间隔才会执行。

export function debounce(fn, delay = ) {
 // 记录上一次的延时器
 var timer = null;
 return function() {
  var args = arguments;
  var that = this;
  // 清除上一次延时器
  clearTimeout(timer)
 
推荐文章
失落的汽水  ·  Building a Real-Time Chat Micro-Frontend with Vue 3, Vite, and Module Federation
1 月前
彷徨的绿茶  ·  typescript,把一个对象数组转换成map - CSDN文库
1 年前
慷慨大方的莲藕  ·  Java对IPv6的支持详解:支持情况、相关API、演示代码等-腾讯云开发者社区-腾讯云
2 年前
眉毛粗的草稿纸  ·  大规模1.4亿中文知识图谱数据,我把它开源了 网页链接 作者 | Just 出品 | AI科技大本营(ID:rgznai100) 人工智能从感知阶段逐步进入认知智能的... - 雪球
2 年前
爱跑步的回锅肉  ·  skynet 定时器sleep与fork - 简书
2 年前
朝气蓬勃的沙发  ·  Python3 面向对象| 菜鸟教程
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号