vue项目中按钮防抖处理实现过程

 更新时间:2023年08月22日 14:14:01   作者:全栈狂神  
这篇文章主要给大家介绍了关于vue项目中按钮防抖处理实现的相关资料,在项目开发中相必大家时常会遇到按钮重复点击后引起事件重复提交的问题,需要的朋友可以参考下

防抖的概念和意义

1. 概念

连续点击按钮时,按钮的点击事件只会触发触发一次,结束连续点击后,再次点击按钮时才会触发按钮的点击事件

2. 意义

按钮防抖是针对按钮操作时,用户连续点击按钮时也会每次触发按钮的绑定的点击事件,这会造成多次无效的触发

实现过程

1. 通过定义指令方式

通过定义指令方式实现防抖限制,可为需要防抖的按钮添加防抖的指令即可实现按钮的防抖操作限制,使用方式简洁

2. 实现代码

// 点击防抖
const throttle = {
  bind: (el, binding) => {
    let throttleTime = binding.value // 防抖时间
    if (!throttleTime) { // 用户若不设置防抖时间,则默认1s
      throttleTime = 1000
    }
    let timer
    let disable = false
    el.addEventListener('click', event => {
      if (timer) {
        clearTimeout(timer)
      }
      if (!disable) { // 第一次执行(一点击触发当前事件)
        disable = true
      } else {
        event && event.stopImmediatePropagation()
      }
      timer = setTimeout(() => {
        timer = null
        disable = false
      }, throttleTime)
    }, true)
  }
}

3. 使用案例代码

// 1. 注册指令
Vue.directive('throttle', throttle);
// 2. 按钮添加防抖指令
// 2.1 普通按钮或dom节点也可添加指令实现防抖显示
// eg1:
<button v-throttle="2000">按钮防抖</button>
// 2.2 element组件按钮实现防抖
<el-button v-throttle="2000">按钮防抖</el-button>

总结

到此这篇关于vue项目中按钮防抖处理实现的文章就介绍到这了,更多相关vue项目按钮防抖内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue 插值 v-once,v-text, v-html详解

    vue 插值 v-once,v-text, v-html详解

    这篇文章主要介绍了vue 插值 v-once,v-text, v-html详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Nginx部署前端Vue项目的完全流程

    Nginx部署前端Vue项目的完全流程

    在前后端分离架构中,vue项目通常需要部署到nginx服务器以实现生产环境运行,这篇文章主要介绍了Nginx部署前端Vue项目的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-05-05
  • 安装nvm node版本管理器的操作方法(vue2.x迁移vue3.x)

    安装nvm node版本管理器的操作方法(vue2.x迁移vue3.x)

    这篇文章主要介绍了安装nvm node版本管理器(vue2.x迁移vue3.x)的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • Vue.js实现按钮的动态绑定效果及实现代码

    Vue.js实现按钮的动态绑定效果及实现代码

    本文通过实例代码给大家介绍了Vue.js实现按钮的动态绑定效果,代码简单易懂,非常不错,具有参考借鉴价值,需要的的朋友参考下吧
    2017-08-08
  • Vue.js组件高级特性实例详解

    Vue.js组件高级特性实例详解

    这篇文章主要介绍了Vue.js组件高级特性,结合实例形式详细分析了vue.js组件递归、模板、动态加载、渲染等相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • Vue多布局模式实现方法详细讲解

    Vue多布局模式实现方法详细讲解

    这篇文章主要介绍了Vue多布局模式实现方法,多布局模式可以根据用户角色所在场景切换页面布局,是非常常见的基础功能,感兴趣的同学可以参考下文
    2023-05-05
  • element tree树形组件回显数据问题解决

    element tree树形组件回显数据问题解决

    本文主要介绍了element tree树形组件回显数据问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Vue自定义组件实现 v-model 的几种方式

    Vue自定义组件实现 v-model 的几种方式

    在 Vue 中,v-model 是一个常用的指令,用于实现表单元素和组件之间的双向绑定,当我们使用原生的表单元素时,直接使用 v-model 是很方便的,本文给大家介绍了Vue自定义组件实现 v-model 的几种方式,需要的朋友可以参考下
    2024-02-02
  • vue如何获取点击事件源的方法

    vue如何获取点击事件源的方法

    本篇文章主要介绍了vue如何获取点击事件源的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • Vuex的actions属性的具体使用

    Vuex的actions属性的具体使用

    这篇文章主要介绍了Vuex的actions属性的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04

最新评论