-
Notifications
You must be signed in to change notification settings - Fork 2.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【V3】useRequest #1173
Comments
请问, throwOnError的意义是什么. 看源码它只做了2件事。
如果异常是直接throw的,如果没处理会抛到全局,浏览器控制台也是会显示的。 |
3.0 版本已经没有这个属性了,会提供 run 和 runAsync 两个方法,run 默认捕获异常,runAsync 默认不捕获异常。 |
loadMore 和 run 同时存在的情况下,多次调用run, 只有首次才会有loading false ==> true ==> false 的过程,第二次以及以后调用loading始终为false, 反而一直是loadingMore经历false ==> true ==> false 的过程。其实调用run方法只能算首次加载,始终用的应该是loading |
useRequest@3.x 什么时候发布? |
现在已经可以用了,文档:https://ahooks-next.surge.sh/ |
3.0版本是移除了 |
暂时是的,还没想好 ready 要怎么做。后面想好了会加~ |
所以 |
|
|
动态并行请求可以举个例子么。。 之前官网的 fetchKey demo,可以将删除按钮封装成一个组件解决。 |
动态生成的资源列表 [a, b, c, d] → 遍历列表同时请求 → 界面显示每个请求的状态与结果 v3 这种场景怎么处理比较好呢 |
封装一个 Item 组件?请求逻辑放到每个 Item 中。 |
1 similar comment
封装一个 Item 组件?请求逻辑放到每个 Item 中。 |
如果想在父组件统一管理请求状态呢😂 |
那不支持了。。。 |
忽然想到个问题,如果把请求状态放在子组件中处理,那如果父组件是虚拟滚动的列表,那子组件的请求状态就丢失了。 |
我想了解下在2.0中throwOnError 我全部设置为true,是不是没问题?应该不会影响到渲染而且抛出的异常内容会更精准?之前为什么考虑加这个功能? |
|
|
旧版的autoCancel属性为什么取消了,用什么做代替啊? |
具体哪个版本呢? |
基础能力
手动触发
options.manual
,则不会自动执行Promise
,需要用run/runAsync
触发执行true
,则初始化时不会自动执行result
与params
,params
在上述示例中为[userId, userName]
error
与params
轮询
options.pollingInterval
,进入轮询模式,定时触发函数执行。run/cancel
来开启/暂停轮询options.manual=true
时,需要第一次执行run
后,才开始轮询。并行请求
options.fetchKey
,进入并行模式,支持多个请求并行执行,每个请求有自己的状态。fetches[key]
即可拿到相关请求的数据。防抖
options.debounceWait
,进入防抖模式。cancel
可取消正在等待和正在执行的请求runAsync
的 Promise,在真正执行的那一次,需要触发then
节流
同防抖,不单独写了。
屏幕聚焦重新请求
options.refreshOnWindowFocus
,则在浏览器窗口refocus
和revisible
时,会重新发起请求。refocus
和revisible
时,重新发起请求。Loading Delay
options.loadingDelay
,可以延迟loading
变成true
的时间,有效防止闪烁。loading
变成true
的延迟时间ready
manual=false
,则在首次ready
从false
变为true
时,会自动执行run
触发请求时,会先校验ready
,只有ready=true
,才会发起请求,否则会废弃该次请求。缓存&SWR
options.cacheKey
后,开启缓存模式,开启 SWR 特性,数据在全局同一个 cacheKey 下共享。-1
,表示永不过期-1
,表示永远新鲜localStorage
或sessionStorage
,则强制cacheTime = -1
,除非手动设置**manual=true**
** 时如何处理缓存?**mutate
cacheKey
都会被影响。suspense
错误重试
options.retryCount
,则启动错误重试。-1
,则无限重试更多 Return
run(1, 2, 3)
,则 params 等于[1, 2, 3]
更多 Options
manual=false
时,refreshDeps
变化,会触发 service 重新执行。相当于下面写法的语法糖。data
,onSuccess
manual=false
,自动执行 run 的时候,默认带上的参数(params)
(params, result, error)
删除的特性
可以通过
const { data = [1]} = useRequest(xxx)
来设置初始值建议自己基于 useRequest 封装一下就好,提供 demo
clearCache
小程序环境支持
对 Taro、Remax 等跨端应用支持
pollingWhenHidden
的正常表现待考虑 issue
The text was updated successfully, but these errors were encountered: