用途:为基于 Expo 及 TanStack 生态、XState、Zustand 构建的 React Native 应用提供可复用的开发模式,是 react-advanced(跨平台核心模式)在移动端的扩展,建议先读后者了解 React Query、XState、Zustand、Zod、TanStack Form、TanStack Table 约定。
主要能力与要点:移动端库映射不同于 Web,例如 TanStack Router 对应 Expo Router、TanStack Virtual 对应 FlashList、localStorage 对应 MMKV、Web Push 对应 expo-notifications、Service Workers 对应 expo-updates。React Query 需在根 _layout.tsx 内手动接入 focusManager(AppState)与 onlineManager(NetInfo),否则自动重取与离线处理失效。数据获取不依赖路由 loader,采用交互时预取、目标页消费,配合 useFocusEffect 使返回页面时失效旧数据,并用 invalidateQueries 代替 refetch。导航鉴权可用 Stack.Protected 的 guard 属性自动重定向并清理历史,复杂流程用 XState 管理。列表用 FlashList 搭配 React Query,onEndReached 需加 !isFetchingNextPage 防重复请求,getNextPageParam 应返回 undefined。TanStack Form 无头、TextInput 用 onChangeText,表单外层 ScrollView 需设 keyboardShouldPersistTaps="handled"。Zustand persist 配合 MMKV 模块级实例,缺失键须返回 null,敏感数据用加密实例。Reanimated 与 Gesture Handler 运行于 UI 线程,共享值须整体替换、不可解构、渲染期不可读。底部弹窗 @lodev09/react-native-true-sheet 为命令式控制、最多 3 个 detent。通知需调用 setNotificationHandler,Android 13+ 先建 channel。OTA 用 expo-updates,更新检查应在首次渲染后执行,并监控 isEmergencyLaunch。
适用场景:需要处理复杂数据流、鉴权路由、长列表、表单、持久化、动画手势、推送与热更新的 Expo/React Native 项目。
限制:部分能力有平台与版本约束,如 FlashList v2 需 New Architecture,Android 推送在 Expo Go 中不可用需 development build,TrueSheet 仅支持 New Architecture;具体安装命令与完整代码示例未在资料中提供。