SuperAPI AI 工具集

native-data-fetching

数据与分析

查看项目

更新于 10-15 19:58

技能介绍

用途:该技能用于 Expo/React Native 项目中所有网络相关工作,包括 API 请求、数据获取、缓存、离线处理与网络调试。

主要能力:

  1. 基础请求:使用 fetch 发起 GET/POST,检查 response.ok 并解析 JSON。
  2. 数据获取库:React Query(TanStack Query)的 QueryClientProvider、useQuery、useMutation、invalidateQueries;简单场景可用 SWR 或自定义 Hook。
  3. 错误处理:自定义 ApiError 类、网络错误与 HTTP 错误区分、指数退避重试。
  4. 鉴权:用 expo-secure-store 存储 token,封装 authFetch,并实现 token 刷新流程。
  5. 离线支持:用 @react-native-community/netinfo 检测网络状态,配合 React Query 的 onlineManager 实现离线暂停、恢复后继续。
  6. 环境变量:Expo 支持 EXPO_PUBLIC_ 前缀变量,构建时内联;可建 .env.development、.env.production 区分环境。
  7. 请求取消:使用 AbortController,React Query 会自动取消。

使用方式:按决策树选择方案——路由级数据加载(Web、SDK 55+)参考 references/expo-router-loaders.md;基础请求用 fetch;复杂应用用 React Query,简单需求用 SWR;鉴权用 SecureStore;离线用 NetInfo;环境配置用 EXPO_PUBLIC_ 变量。偏好避免 axios,优先 expo/fetch。

适用场景:React Native/Expo 应用的 API 集成、缓存策略、离线场景、token 管理与多环境配置。

限制与注意:EXPO_PUBLIC_ 变量会暴露在客户端包中,不可存放密钥;环境变量在构建时内联,修改 .env 后需重启开发服务器;服务端密钥应使用无前缀变量且仅用于 API 路由。具体版本要求与更多细节以官方资料为准,部分内容暂未提供。