题目
团队用 wagmi 3.x 与 viem 2.x 开发一个新的 DApp。有人提议再包一层自研的数据请求库来统一 loading 与错误处理,也有人认为 wagmi 的 hook 不负责缓存、需要自己写一套。请说明三者的分工,并给出「数据获取、缓存、失效、错误」四项职责的分配方式。
考察目标
- 三个依赖各自的职责边界。
- 数据 hook 与写操作对应的状态模型。
- 缓存与失效的心智模型来源。
说明三个依赖各自负责什么,以及数据获取、缓存、失效与错误四项职责的分配方式。
团队用 wagmi 3.x 与 viem 2.x 开发一个新的 DApp。有人提议再包一层自研的数据请求库来统一 loading 与错误处理,也有人认为 wagmi 的 hook 不负责缓存、需要自己写一套。请说明三者的分工,并给出「数据获取、缓存、失效、错误」四项职责的分配方式。
viem 提供链交互原语,包括 ABI 编解码、client、transport 与错误类型;TanStack Query 提供异步状态管理,包括查询状态、缓存、失效、重试与请求去重;wagmi 的 React hooks 基于这两层封装,数据 hook 对应查询、写操作对应 mutation。因此缓存与失效应沿用 TanStack Query 的心智模型,而不是另建一套。实现差异与工程取舍见深入回答。
发现这道题有问题? 反馈此题