该技能用于规范 Expo 移动应用的开发方式,提供从导航到性能优化的实践约定,内容以代码示例呈现。
用途:为基于 Expo 的移动应用项目提供统一的编码约定与最佳实践参考。
主要能力: 一、导航:使用 Expo Router 的文件式路由,说明根布局 app/_layout.tsx、标签组 (tabs)/_layout.tsx、动态路由 [id].tsx 与模态页面的组织方式,并给出 Link、useRouter、useLocalSearchParams 的声明式与命令式导航用法,以及基于 useAuth 与 Redirect 的受保护路由示例。 二、状态管理:介绍 Context API、Redux Toolkit 与 Zustand 三种方案,Zustand 示例结合 persist 与 AsyncStorage 实现持久化。 三、离线支持:涵盖 AsyncStorage 本地读写、expo-sqlite 建表与同步标记、NetInfo 网络状态检测,以及基于 @tanstack/react-query 的乐观更新与离线队列同步。 四、推送通知:使用 expo-notifications 注册推送令牌、设置通知处理与 Android 通道,处理通知点击响应及本地定时通知的调度与取消。 五、深度链接:通过 app.json 配置 scheme 与 intentFilters,说明 Expo Router 自动处理链接、expo-linking 解析 URL,以及 iOS 与 Android 的关联文件配置。通知数据中可携带 URL 并调用 Linking.openURL。 六、性能优化:memo、useMemo、useCallback 记忆化,FlashList 长列表,expo-image 图片缓存与占位。
使用方式:按技能约定在项目中组织目录与文件,并遵循示例中的导入与调用方式;技能提到开始前读取 .claude/context/memory/learnings.md,完成后记录新模式或例外。
适用场景:开发或维护 Expo 移动应用并需要统一路由、状态、离线、通知与链接规范时。
限制:资料未提供安装命令、版本要求、收费或价格信息;部分示例依赖的第三方库与后端接口需自行配置,具体平台差异与效果未在资料中说明。