首页 编程 技术 应用
useRequest的防抖和节流机制 编程 | 前端编程 | React
useRequest是支持冷启动➕手工请求模式的,这种模式下可能会造成频繁请求同一个接口,造成的后果是数据抖动或网络性能浪费。

React Hooks API之useRequest是支持冷启动➕手工请求模式的,这种模式下可能会造成频繁请求同一个接口,造成的后果是数据抖动或网络性能浪费。所以,一旦在React项目中,有类似网络请求场景出现时候,一定要设置两个参数,具体如下:

1. debounceWait:防抖等待时间, 单位为毫秒,设置后,进入防抖模式;
2. throttleWait:节流等待时间, 单位为毫秒,设置后,进入节流模式。

下面,分别给出代码示例:

一、防抖

const DemoFC: React.FC = () => {
  const [para1, setPara1] = useState('默认值');
  const [para2, setPara2] = useState('默认值');
  
  const { data: dataList,run, refresh } = useRequest(() => {
    return getDataList({
      para1,
      para2
    });
  }, {
    manual: true, // 手动
    debounceWait: 300,
    onSuccess: (res) => {
      console.log(res.data);//列表值
    }
  });
  
    useEffect(() => {
    run({'para1值','para2值'});
  }, [para1,para2]);
}

 

二、节流

const DemoFC: React.FC = () => {
  const [para1, setPara1] = useState('默认值');
  const [para2, setPara2] = useState('默认值');
  
  const { data: dataList,run, refresh } = useRequest(() => {
    return getDataList({
      para1,
      para2
    });
  }, {
    manual: true, // 手动
    throttleWait: 300,
    onSuccess: (res) => {
      console.log(res.data);//列表值
    }
  });
  
    useEffect(() => {
    run({'para1值','para2值'});
  }, [para1,para2]);
}

参数debounceWaitthrottleWait,要设置多少毫秒,要根据实际情况而定。

点击阅读全文

发表 2023-01-03 21:13:32 祝融 →

京ICP备16053008号-4 公安备案号11010502049515

©️2022 码嗨路书版权所有,威廉宏业科技出品