关于 expo-react-native-performance
面向开发者和编码 Agent 的 Expo React Native 应用性能优化参考技能,涵盖从启动到平台优化的八类场景,并按影响程度排列 42 条规则。
主要功能
- 01八类共 42 条性能规则
- 02按影响程度排列建议
- 03启动与包体积优化
- 04列表、渲染与动画建议
- 05图像、内存和数据获取实践
适用场景
- 01构建 React Native 屏幕和组件
- 02优化 FlatList 或 FlashList 性能
- 03审查动画和图像加载代码
- 04改善应用启动或内存效率
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pproenca/ dot-skills --skill expo-react-native-performance安装后在 Claude Code 中输入/expo-react-native-performance确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
AGENTS.mdmetadata.jsonREADME.mdassets/templates/_template.mdreferences/_sections.mdanim-interaction-manager.mdanim-layout-animation.mdanim-transform-not-dimensions.mdanim-use-native-driver.mdanim-use-reanimated.mdasset-optimize-image-size.mdasset-prefetch-images.mdasset-recycling-key.mdasset-use-expo-image.mdasset-use-webp-format.mdasync-batch-api-calls.mdasync-cache-responses.mdasync-defer-await.mdasync-parallel-fetching.mdasync-refetch-on-focus.mdlist-estimated-item-size.mdlist-get-item-layout.mdlist-get-item-type.mdlist-memoize-items.mdlist-stable-render-item.mdlist-use-flashlist.mdmem-abort-fetch.mdmem-avoid-inline-objects.mdmem-cleanup-subscriptions.mdmem-clear-timers.md详细介绍
Expo React Native 性能最佳实践
全面的 Expo React Native 应用性能优化指南。包含 8 个类别中的 42 条规则,并按影响程度排序,帮助自动重构和代码生成。
适用场景
在以下情况下参考这些指南:
- 编写新的 React Native 组件或屏幕
- 使用 FlatList 或 FlashList 实现列表
- 添加动画或过渡效果
- 优化图像和资源加载
- 检查代码中的性能问题
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 应用启动与包体积 | CRITICAL | startup- |
| 2 | 列表虚拟化 | CRITICAL | list- |
| 3 | 重渲染优化 | HIGH | rerender- |
| 4 | 动画性能 | HIGH | anim- |
| 5 | 图像与资源加载 | MEDIUM-HIGH | asset- |
| 6 | 内存管理 | MEDIUM | mem- |
| 7 | 异步与数据获取 | MEDIUM | async- |
| 8 | 平台优化 | LOW-MEDIUM | platform- |
快速参考
1. 应用启动与包体积(CRITICAL)
startup-enable-hermes- 启用 Hermes JavaScript 引擎startup-remove-console-logs- 在生产环境中移除控制台日志startup-splash-screen-control- 控制启动屏幕的显示startup-preload-assets- 在启动屏幕期间预加载关键资源startup-async-routes- 使用异步路由进行代码拆分startup-cherry-pick-imports- 使用直接导入代替聚合导出文件
2. 列表虚拟化(CRITICAL)
list-use-flashlist- 使用 FlashList 代替 FlatListlist-estimated-item-size- 提供准确的 estimatedItemSizelist-get-item-type- 对混合列表使用 getItemTypelist-stable-render-item- 使用 useCallback 稳定 renderItemlist-get-item-layout- 为固定高度的列表项提供 getItemLayoutlist-memoize-items- 对列表项组件进行记忆化处理
3. 重渲染优化(HIGH)
rerender-use-memo-expensive- 对开销较大的计算进行记忆化处理rerender-use-callback-handlers- 使用 useCallback 稳定回调函数rerender-functional-setstate- 使用函数式 setState 更新rerender-lazy-state-init- 使用惰性状态初始化rerender-split-context- 按更新频率拆分 contextrerender-derive-state- 派生状态,而非同步状态
4. 动画性能(HIGH)
anim-use-native-driver- 为动画启用原生驱动anim-use-reanimated- 对复杂动画使用 Reanimatedanim-layout-animation- 对简单过渡使用 LayoutAnimationanim-transform-not-dimensions- 使用 transform 而非尺寸属性制作动画anim-interaction-manager- 在动画期间延后执行繁重操作
5. 图像与资源加载(中高)
asset-use-expo-image- 使用 expo-image 加载图像asset-prefetch-images- 在显示前预取图像asset-optimize-image-size- 请求尺寸合适的图像asset-use-webp-format- 使用 WebP 格式的图像asset-recycling-key- 在 FlashList 图像中使用 recyclingKey
6. 内存管理(中)
mem-cleanup-subscriptions- 在 useEffect 中清理订阅mem-clear-timers- 在卸载时清除计时器mem-abort-fetch- 在卸载时中止 fetch 请求mem-avoid-inline-objects- 避免在 props 中使用内联对象mem-limit-list-data- 限制内存中的列表数据
7. 异步与数据获取(中)
async-parallel-fetching- 并行获取互相独立的数据async-defer-await- 延迟到需要值时再 awaitasync-batch-api-calls- 批量处理相关的 API 调用async-cache-responses- 在本地缓存 API 响应async-refetch-on-focus- 屏幕获得焦点时重新获取数据
8. 平台优化(低至中)
platform-android-overdraw- 减少 Android 过度绘制platform-ios-text-rendering- 优化 iOS 文本渲染platform-android-proguard- 为 Android 发布版本启用 ProGuardplatform-conditional-render- 特定于平台的优化
使用方法
阅读各个参考文件,了解详细说明和代码示例:
完整汇编文档
如需查看包含所有展开规则的完整指南,请参阅 AGENTS.md。
参考文件
| 文件 | 描述 |
|---|---|
| AGENTS.md | 包含所有规则的完整汇编指南 |
| references/_sections.md | 分类定义和排序 |
| assets/templates/_template.md | 新规则模板 |
| metadata.json | 版本和参考信息 |
评论
支持 Markdown