在 WEB 开发中的“节流”和“防抖”的不同

本文详细介绍了WEB开发中的节流(Throttling)和防抖(Debouncing)的区别,强调了它们在限制函数执行频率方面的不同策略。通过举例,解释了在3秒内频繁点击button时,节流会执行3次,而防抖只执行1次。文章还探讨了这两种技术在实际应用中的场景,特别是在React组件中如何使用lodash的debounce函数实现用户输入延迟触发API调用,以及在函数式组件中如何正确使用useCallback和useMemo Hook避免重复创建函数导致的问题。
摘要由CSDN通过智能技术生成

在 WEB 开发中的“节流”和“防抖”的不同

在 WEB 开发中的“节流”和“防抖”的不同

  • 节流(Throttling): 强制一个函数在一定时间内的最大调用次数。比如说:每 100ms 内最多执行该函数一次;
  • 防抖(Debouncing):强制一个函数在一定时间内未被调用的情况下才能执行。比如说:100ms 内没有执行过该函数的情况下再执行。

Throttling 是在固定的时间内执行一次;而 Debounce 是动态的,它要求在一定的时间内没有执行过后才执行,也就说他会重置时间。

假设有个 button 的 click 事件回调函数,不妨称之为 handleClick,此时你在在 3 秒内你每隔 0.5秒点击一次,那么如果设置 ThrottlingDebounce 均为一秒,那么在 3 秒后你停止点击该 button,此时

  • Throttling:执行 handleClick 3次
  • Debounce:执行 handleClick 1次

具体应用

export default function App() {
   
  const [path, setPath] = React.useState(
    'the-road-to-learn-react/the-road-to-learn-react'
  );
  
  React.useEffect(() => {
   
    onFetchFromGitHub(path);
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值