performance-optimization

Enforce React Native performance rules for lists, memoization, and animations.

Updated Feb 27, 2026
One-click install
npx skills add https://github.com/alejandro-technology/react-native-template --skill performance-optimization-alejandro-technology
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: performance-optimization
Source: https://github.com/alejandro-technology/react-native-template/tree/main/.claude/skills/enforcement/performance-optimization
Command: npx skills add https://github.com/alejandro-technology/react-native-template --skill performance-optimization-alejandro-technology

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Performance pitfalls in React Native apps undermine smooth UX by causing excessive re-renders and jank in lists and animations.

Core Features & Use Cases

  • Enforces FlashList over FlatList patterns and stable keyExtractor usage.
  • Encourages React.memo on list items and useMemo/useCallback for expensive computations.
  • Provides layout-level animation guidance to avoid per-item animations.

Quick Start

Refactor list-heavy components to memoize items, centralize layout animations, and apply debounced inputs to minimize rerenders.

Frequently Asked Questions about performance-optimization

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I stop excessive re-renders in React Native lists?

Stop excessive re-renders by applying React.memo to list items and using useMemo for expensive computations. This ensures components only re-render when their specific props change, reducing jank in list-heavy views.

What is the best way to optimize animations in React Native to avoid jank?

The best way to optimize animations is to centralize them at the layout level rather than applying per-item animations. This approach avoids performance pitfalls and maintains smooth UX in animation-heavy flows.

Does FlashList perform better than FlatList for React Native list rendering?

FlashList performs better by enforcing optimized list rendering patterns over FlatList. You must also use a stable keyExtractor to ensure items track correctly across renders and avoid unnecessary component mounting.

When do I need memoization for React Native components?

You need memoization when list-heavy components perform expensive computations or render frequently. Apply useMemo and useCallback to cache values and functions, preventing unnecessary recalculations during re-renders.

How to guard data-fetching to prevent performance issues in React Native?

Guard data-fetching by applying debounced inputs to minimize rerenders and control network requests. This prevents rapid successive fetches that degrade performance during user interaction in list views.

Can I use this performance optimization approach during code reviews?

You can apply these deterministic rules and checks during code reviews to verify list rendering patterns, memoization strategies, animation placement, and data-fetch guards are satisfied before merging.