用途:在 React Native / Expo 项目中实现或调试任何网络请求、API 调用与数据获取,包括缓存、离线、鉴权与网络排错。
主要能力:基础 fetch 的 GET/POST 写法与响应状态检查;React Query(TanStack Query)的 QueryClientProvider、useQuery、useMutation 与失效重取;错误处理(自定义 ApiError、网络错误区分、指数退避重试);鉴权(expo-secure-store 存 token、Bearer 头、token 刷新与并发去重);离线支持(NetInfo 监听网络、onlineManager 同步、离线暂停在线恢复);环境变量(EXPO_PUBLIC_ 前缀、.env.development/.env.production、API 客户端封装、TypeScript 类型声明);请求取消(AbortController,React Query 自动取消)。
使用方式:按决策树选择方案——简单请求用 fetch 加错误处理;需要缓存与状态管理时复杂应用用 React Query,简单需求用 SWR 或自定义 hook;鉴权用 SecureStore 并实现刷新流程;离线用 NetInfo 与 React Query 持久化;环境配置用 EXPO_PUBLIC_ 变量。偏好上避免 axios,优先 expo/fetch。
适用场景:React Native / Expo 应用的 API 集成、数据缓存、离线可用、登录态管理与多环境 API 地址切换。
限制与注意:仅 EXPO_PUBLIC_ 前缀变量会进入客户端包,密钥不可放入其中;环境变量在构建时内联而非运行时,修改 .env 后需重启开发服务器;服务端密钥应使用无前缀变量且仅用于 API 路由;token 不应存于 AsyncStorage。具体版本、收费与平台支持暂未提供。