vue中按钮防止暴力点击,多次提交数据的问题,组件通用化封装

方法1:用计时器改变按钮可点击状态


 
 


方法2,通过控制isDisable 来设置 disabled来控制按钮的点击和不可点击。 默认isDisable:的值为 false,按钮可以点击。 当我们点击这个按钮的时候,首先将按钮的绑定isDisable设置为true,1秒后立马将其置为false。 所以用户只能有一秒的时间去操作这个按钮。


 


 
但是如果很多页面都有这种问题就很难操作,所以我们可以自定义组件


 


防止暴力点击组件


 


3 通过自定义指令

1)新建plugins.js

export default {
  install (Vue) {
    // 防重复点击(指令实现)
    Vue.directive('preventReClick', {
      inserted (el, binding) {
        el.addEventListener('click', () => {
          if (!el.disabled) {
            el.disabled = true
            setTimeout(() => {
              el.disabled = false
            }, binding.value || 3000)
          }
        })
      }
    })
  }
}


2)在main.js引用

3)按钮调用直接加v-preventReClick


这样就不需要每次使用都引入对应组件只用改变点击事件的调用方法即可 

你可能感兴趣的:(前端——JavaScript,前端——vue,vue,js,javascript,组件,暴力点击)