按钮多次点击时,不进行节流操作的话,会导致重复提交或者请求,这时就需要控制,在某一个时间段内,只执行一次操作

  • 编写指令
    在项目中添加一个plugins.js
import Vue from 'vue'

// 防止重复提交指令
const preventReClick = Vue.directive('preventReClick', {
  inserted (el, binding) {
    el.addEventListener('click', () => {
      if (!el.disabled) {
        el.disabled = true
        setTimeout(() => {
          el.disabled = false
        }, binding.value || 500)
      }
    })
  }
})

export { preventReClick }
  • 在需要使用的地方添加
<template>
	<div class="home">
		<van-button @click="next" v-prevent-re-click>
          下一步
        </van-button>
	</div>
</template>
<script>
	import Vue from "vue";
	import { preventReClick } from '@utils/plugins';
	Vue.use(preventReClick);
</script>
Logo

前往低代码交流专区

更多推荐