龙空技术网

Vue防止用户在一定时间多次点击后触发多次请求

博学多才的饼干xN 3894

前言:

当前你们对“js addeventlistener两次”可能比较关注,咱们都需要学习一些“js addeventlistener两次”的相关知识。那么小编同时在网上收集了一些对于“js addeventlistener两次””的相关内容,希望朋友们能喜欢,姐妹们一起来学习一下吧!

在开发中,有些提交保存按钮有时候会在短时间内被点击多次,这样就会多次重复请求后端接口,造成数据的重复,详情接口无法显示报错,比如新增表单的提交按钮,多次点击就会新增多条重复的数据。

问题解决方案如下:

1.在main.js中注册

Vue.directive('debounce', {

inserted(el, binding, vnode) {

let timer = {}

el.addEventListener('click', () => {

if (timer) {

clearTimeout(timer)

}

timer = setTimeout(() => {

binding.value()

}, 2000)

})

}

})

2.在按钮中v-debounce绑定

<el-button type="success" icon="el-icon-search" @click="searched()" size="mini" v-debounce="debounceClick">检索</el-button>

3.写一个方法检测是否成功

debounceClick() {

console.log("只触发一次");

},

标签: #js addeventlistener两次 #vue绑定多个点击事件 #js防止连续点击 #前端防止用户连续点击 #后端防止用户连续点击