react hooks-页面实时刷新2(useRequest)

总述:

        页面能够实时刷新,归根结底是用了定时器的原理

        1. 用setInterval直接实现 ->  react hooks-页面实时刷新(setInterval)

        2. 用封装好的hook函数实现 (useRequest - pollingInterval

一、什么是useRequest?

   useRequest 是一个强大的异步数据管理的 Hooks基于 umi-request 和 ahooks , 提供了一套统一的网络请求和错误处理方案,React 项目中的网络请求场景基本用它就够了。它通过插件式组织代码,核心代码极其简单。

        默认情况下,useRequest 第一个参数是一个异步函数,在组件初始化时,会自动执行该异步函数。同时自动管理该异步函数的 loading , data , error 等状态。

 二、useRequest 轮询 (页面自动刷)

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

const { data, run, cancel,loading } = useRequest(getUsername, {
  pollingInterval: 3000,  //轮询间隔,单位为毫秒。
  pollingErrorRetryCount: 3,  //轮询错误重试次数。如果设置为 -1,则无限次
  pollingWhenHidden: false ,  //在页面隐藏时,是否继续轮询。 false 隐藏时会暂时停止,页面重新显示时继续上次轮询。

});

三、useRequest API 

四、来个栗子:

//定时获取任务列表
const queryList = useRequest(queryTaskList,{  //queryTaskLists是接口函数(异步函数)
    manual:true,
    pollingInterval:2000;
    pollingWhenHidden:false;
    loadingDelay:200;
    formatResult:(res)=>res;
    onSuccess:(data)=>{
        if(data.code!==200){
            message.error(data.msg);
        }else{
           setlist(data.data)
        }
    };
    onError:(err)=>{message.error(err);}

})

async function queryTaskList(){
    return request('api/task/list',{
        method:get,
    });
}

   页面函数调用:

queryList.run();

   取消轮询:

queryList.cancle();

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值