233 - 《SWR 调研笔记》

发布于 2022年12月20日

SWR 是请求方案调研的第二站,以下是阅读文档和 Demo 后的笔记。SWR 虽然库下载量比 React Query 还大(大部分归功于 Next.js),但从功能上看,感觉和 React Query 不是一个体量的,最近(2022.12.9)发布的 SWR 2 的大部分功能个人感觉也是在追赶 React Query。SWR 的优点我理解是,1)用法简单,封装度更高但是把双刃剑,2)有中文文档。

1、关于错误处理。1)useSWR 会返回 error 对象,2)用 fetch 库的记得手动处理非 2xx 状态码,3)请求错误时会默认用指数退避算法重发请求,可通过 onErrorRetry 覆盖该行为,4)通过 SWRConfig 可全局定制 onError 方法,用于显示 toast、报告到 Sentry 等。

2、SWR 提供了多种方法做数据突变。1)全局的 mutate 方法,可以从 swr import,也可以通过 useSWRConfig 获取(推荐),2)useSWR 会返回一个绑定了 key 的 mutate 方法,3)基于 useSWRMutation 独立状态的命令式突变(V2 加的,推荐)。mutate 方法承载了多个功能,1)不传 data 即为 revalidation,通过传入 fn 格式的 key 可支持批量,2)传 data 为直接变更数据,3)data 为 async function 时做远程数据突变,4)通过 optimisticData 选项提供乐观更新的数据,然后通过 rollbackOnE

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。