vue中input如何实现防抖
编程语言
2023-08-15 19:35:53
阅读次数: 0
防抖的使用场景:
- 登录或者发短信避免用户点击过快,以至于发送了太多请求,需要防抖
- 调整浏览器窗口大小时,resize次数太过频繁造成计算过多,需要一次到位,就用到了防抖
- input框搜索时候,当触发input框事件的时候每次输入内容都会刷新(清除上一个定时器),也就是说只要你一直输入内容他就会一直不请求
防抖的原理:
- 在事件被触发n秒后在执行回调,如果在这n秒又被触发,则重新计时
实现思路:
实现防抖:
- 在根目录下创建utils文件夹,在utils文件夹下创建一个utils.js文件
- 在utils.js下添加代码
export function debounce(fn, wait) {
let timeout = null;
wait = wait || 600;
return function () {
let that = this;
if(timeout !== null) clearTimeout(timeout);
timeout = setTimeout(() => {
fn.apply(that);
}, wait);
}
}
- 在需要的页面引入
//在需要的页面引入
import {debounce} from "@/utils/utils"
- 触发input事件
<input v-model="value" @input="changeValue" />
- 调用changeValue方法
methods:{
changeValue:debounce(function(){
console.log(111)
}, 1000) //这个1000代表事件延迟1000ms执行
}
转载自blog.csdn.net/weixin_55521186/article/details/130614497