// 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/>