开发过程中,常用到节流,防止按钮在弱网情况下,多次频繁点击多次请求接口导致数据不准确性,所以,添加全局防抖自定义指令,’v-preventReClick‘
封装方法:
- 新建文件preventReClick.js
const preventReClick = Vue.directive('preventReClick', {
// 防止按钮重复点击
inserted: function(el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
setTimeout(() => {
el.disabled = false
}, binding.value || 3000)
}
})
}
})
export { preventReClick }
- 在全局main.js中引入自定义指令文件
import * as preventReClick from './preventReClick' //防止重复点击
Vue.use(element)
.use(preventReClick)
export default new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
3.在.vue文件中使用
<el-button type="primary" size="small" v-preventReClick>点击防抖按钮</el-button>