全局自定义指令,(节流的方法)按钮3s仅触发一次

378 阅读1分钟

开发过程中,常用到节流,防止按钮在弱网情况下,多次频繁点击多次请求接口导致数据不准确性,所以,添加全局防抖自定义指令,’v-preventReClick‘

封装方法:

  1. 新建文件preventReClick.js
const preventReClick = Vue.directive('preventReClick', {
  // 防止按钮重复点击
  inserted: function(el, binding) {
    el.addEventListener('click', () => {
      if (!el.disabled) {
        el.disabled = true
        setTimeout(() => {
          el.disabled = false
        }, binding.value || 3000)
      }
    })
  }
})
export { preventReClick }
  1. 在全局main.js中引入自定义指令文件
import * as preventReClick from './preventReClick' //防止重复点击

Vue.use(element)
.use(preventReClick)

export default new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

3.在.vue文件中使用

<el-button type="primary" size="small" v-preventReClick>点击防抖按钮</el-button>