L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Productivité · SKILL.md

react-native-performance

react-native-performance

Optimize React Native rendering for smooth 60fps mobile experiences. Use when optimizing React Native app performance, reducing re-renders, or fixing frame drops.

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: react-native-performance description: Optimize React Native rendering for smooth 60fps mobile experiences. Use when optimizing React Native app performance, reducing re-renders, or fixing frame drops. metadata: triggers: files: - '/*.tsx' - '/*.ts' keywords: - FlatList - memo - useMemo - useCallback - performance - optimization

React Native Performance

Priority: P0 (CRITICAL)

Tune FlatList for 60fps

  • windowSize: Reduce to 5-10 for memory-heavy lists (default 21). initialNumToRender should cover first viewport.
  • getItemLayout: Provide for fixed-height items. Skips runtime measurement.
  • removeClippedSubviews: Enable for Android (default true) to offload clipped items.
  • maxToRenderPerBatch: Limit to 5-10 items per frame to prevent JS thread blockage.
  • keyExtractor: Use stable unique IDs, never array index.

See optimization guide for FlatList configuration examples with getItemLayout, windowSize, and memoization patterns.

Accelerate Core Rendering

  • ** Engine**: Ensure Hermes engine enabled (default in 0.7x). Verify via global.HermesInternal.
  • Animations: Use Native Driver (useNativeDriver: true) or Reanimated 3 for GPU-accelerated 60fps animations.
  • Re-renders: Use React.memo and useMemo for expensive props. Profile via Flipper (React DevTools) for flamegraphs.
  • Network: Batch API calls. Use React Query/Zustand to prevent unnecessary screen refreshes.
  • Images: Use react-native-fast-image for caching and priority. Avoid large PNGs; use WebP.

Reduce Bundle and Startup Time

  • Hermes: Enable for faster startup (default in RN 0.70+).
  • Tree Shaking: Remove unused imports.
  • ProGuard/R8: Enable code shrinking on Android.
  • Lazy Screens: Use lazy prop for stack screens (enabled by default).

Anti-Patterns

  • No ScrollView for Large Lists: Use FlatList.
  • No Inline Styles: Use StyleSheet.create (optimized).
  • No console.log in Production: Strip with babel plugin.

References

See references/optimization-guide.md for FlatList configuration, memoization rules, and bundle analysis.

Canonical response anchors

When this skill applies, preserve the following domain terminology or equivalent concrete examples in the answer when relevant:

  • Android
  • Provide
Skills enregistrées