1、输入框
新建debounce.js文件:
import Vue from 'vue'
Vue.directive('debounce',{
inserted: function (el, binding) {
let timer
el.addEventListener('keyup', () => {
if (timer) {
clearTimeout(timer)
}
timer = setTimeout(() => {
binding.value()
}, 800)
})
}
})
main.js中引入:
import "@/utils/debounce.js"
页面中使用:
<el-input v-model="xxx.xxxxx" v-debounce="自己的方法名">
2、按钮节流
新建 preventReClick.js 文件:
import Vue from 'vue'
//按钮节流
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 { preventReClick }from '@/utils/preventReClick'
Vue.prototype.$preventReClick = preventReClick; // 节流函数
使用
<el-button :@click="getCodeMsgBtn" v-preventReClick>按钮</el-button>
vue 全局节流 input and button
最新推荐文章于 2023-10-31 11:54:57 发布