Umi Hooks

useRequest

核心特性:自动请求/手动请求、SWR(stale-while-revalidate)、缓存/预加载、屏幕聚焦重新请求、轮询、防抖、节流、并行请求、loading delay、分页、错误重试、请求超时管理、suspense、加载更多,数据恢复 +滚动位置恢复…

const {data,loading,error,run,cancel}=useRequest(requsetFunc,options)

1】默认请求

在组件初次加载时,自动触发该函数执行,而且useRequest会生产异步返回的状态。

  • useRequest(requsetFunc,{})
import { useRequest } from '@umijs/hooks';
import Mock from 'mockjs';
import React from 'react';
function getUsername(): Promise<string> {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve(Mock.mock('@name'));
    }, 1000);
  });
}
export default () => {
  const { data, error, loading } = useRequest(getUsername)
  if (error) {
    return <div>failed to load</div>
  }
  if (loading) {
    return <div>loading...</div>
  }
  return <div>Username: {data}</div>
}

2】手动触发

通过设置 options.manual = true , useRequest会返回一个回调函数run,则需要手动传入参数调用 run时才会触发异步请求。(run是useRequset返回的异步请求函数)

const { loading, run }=useRequest(changeUsername,{
  manual:true,
  onSuccess:(result,param) => {//请求之后的回调,获取结果
    //第一个参数用来获取异步结果,第二个参数以数组的形式获取传入的p0和p1
    if (result.success) {
      console.log(param[0],param[1])
      }
  }
});
<button onClick={() => run(p0,p1)}></button>
//此时执行run(p0,p1),会去执行changeUsername,成功之后执行onSuccess回调方法,

3】轮询

通过设置 options.pollingInterval ,进入轮询模式,定时触发函数执行。

  • 通过设置 options.p
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值