ahooks useRequest怎么使用
导读:本文共7582字符,通常情况下阅读需要25分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 基础版(雏形)先上代码:useRequest.tsinterfaceUseRequestOptionsProps{/**请求参数*/initialData?:object;/**请求成功回调*/onSuccess?:(res:any)=>void;}constuseRequest=(requestFn:(initialData?:o... ...
目录
(为您整理了一些要点),点击可以直达。先上代码:
useRequest.ts
使用
useRequest
对于请求函数的写法并无过多要求,只要是一个异步function
且返回一个promise
对象,即可传入useRequest
的第一个参数中,而第二个参数则是一系列的可选配置项,雏形版本我们暂时只支持onSuccess
。
代码改造后:
useRequest.ts
使用
手动执行的逻辑主要是根据manual
参数砍掉useRequest mount
阶段的渲染请求,把执行请求的能力暴露出去,在页面中去手动调用request()
来触发。
代码改造后:
useRequest.ts
使用
轮询的支持在hook中主要用到了timer setTimeout
的递归思路,同时给出一个status
状态值判断是否在轮询中,当调用端执行cancel()
,status
则为false
;当轮询开始,则status
为true
。
而cancel()
的能力 主要也是取消了timer
的递归请求逻辑,并且轮询的业务场景和manual: true
配合很多。
代码改造后:
useRequest.ts
使用
依赖请求的思路就是在hook
中加入一个ready
字段,也是在基于manual
一层的限制后又加了一层,来判断是否在hook
加载时是否做默认请求,而当option
中的ready
更新(为true)时,hook自动更新从而发起请求。
常用于页面中A请求完成后执行B请求,B请求的ready
字段依赖于A请求的data
/loading
字段。
防抖和节流的实现比较简单,依赖于lodash
库,包装了一下request
函数的请求内容。
代码如下:
useRequest.ts
使用
在hook
中,通过lodash.debounce/lodash.throttle
来包装request
函数主体,通过option
中的判断来执行对应的包装体函数。
改造后的代码(最终代码)如下:
useRequest.ts
使用
缓存的主体思路是在useRequest
中拿到第一次数据后通过useCallback
来透出data
依赖来保存,同时向外暴露一个cachedFetchData
来过渡data
从null
到请求到接口数据的过程。
依赖更新的思路则是在页面中给useRequest
一系列依赖状态一并加入在hook
的请求副作用中,监听到页面中依赖改变,则重新请求,具体实现则是refreshDeps
参数。
ahooks useRequest怎么使用的详细内容,希望对您有所帮助,信息来源于网络。