//防抖 所谓防抖,就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。 //推荐使用
timeId = null;
debounce = (fn, time) => {
if (this.timeId) {
clearTimeout(this.timeId);
this.timeId = null;
}
this.timeId = setTimeout(fn, time);
};
handleChange = (value) => {
this.throttle(async () => {
// console.log(value);
let res = await searchGoods({
query: value,
});
// console.log(res);
this.setState({
goodsList: res.message || [],
});
}, 1000);
};
//节流 所谓节流,就是指连续触发事件但是在 n 秒中只执行一次函数
valid = true; // 标识上次事件是否已经完成
throttle = (fn, timeout) => {
// 上次事件已经执行完毕
if (this.valid) {
this.valid = false; // 设置定义器
setTimeout(()=> {
fn.call(this); // 执行回调函数
this.valid = true;
}, timeout);
}
};
防抖和节流
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 防抖 在n秒后执行,如果在n秒内触发,n就会重新计算, 在React项目中使用: src/@utils/debou...
- 防抖和节流的作用都是防止函数多次调用。防抖动和节流本质是不一样的。防抖动是将多次执行变为最后一次执行,节流是将多次...
- 5月以来,哪怕对市场风向再不敏感的人,也感觉到阵阵凉意。二级市场连续下挫,一级市场融资环境恶化,不论企业融资数量还...