问题:用户点击保存时,可能会多次点击。导致生成重复数据。
目标:多次点击时,1s内只允许提交一次数据。
解决方案:
1、创建js文件preventReClick.js
export default {
install (Vue) {
// 防止按钮重复点击
Vue.directive('preventReClick', {
inserted (el, binding) {
// console.log("binding-7", binding)
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 2000)
}
})
}
})
}
}
2、在main.js中引入
import Vue from 'vue';
import preventReClick from './preventReClick'
Vue.use(preventReClick);
3、在.vue 文件中使用
<el-button
type="primary"
@click="submit()"
v-preventReClick="1000"
size="mini"
>{{ $t("m.确定") }}</el-button
>
文章介绍了如何通过创建一个名为preventReClick.js的JavaScript文件,定义一个Vue指令来防止用户在1秒内多次提交数据。该指令在按钮被点击后会禁用按钮,并在指定时间后恢复,有效避免了重复提交的问题。在main.js中引入该指令,并在Vue组件中应用。
1603

被折叠的 条评论
为什么被折叠?



