vue3全局自定义preventReClick指令

255 阅读1分钟
// preventReClick.js
export default (app) => {
  app.directive('preventReClick', {
    mounted(el, { value: time = 1000 }) {
      el.addEventListener('click', () => {
        el.disabled = true
        setTimeout(() => {
          el.disabled = false
        }, time)
      })
    }
  })
}

// main.js
import preventReClick from '@/common/preventReClick'
const app = createApp(App)
preventReClick(app)
app.use(store).mount('#app')

// demo.vue
<el-button v-preventReClick @click="handleClick">我不会重复点击<el-button/>