React performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring React code to ensure optimal performance patterns. Triggers on tasks involving React components, data fetching, bundle optimization, or performance improvements.
React performance optimization guidelines. This skill should be used when writing, reviewing, or refactoring React code to ensure optimal performance patterns. Triggers on tasks involving React components, data fetching, bundle optimization, or performance improvements.
React Best Practices
Comprehensive performance optimization guide for React applications. Contains 37 rules across 7 categories, prioritized by impact.
Rule Categories by Priority
Priority
Category
Impact
Prefix
1
Eliminating Waterfalls
CRITICAL
async-
2
Bundle Size Optimization
CRITICAL
bundle-
3
Client-Side Data Fetching
MEDIUM-HIGH
client-
4
Re-render Optimization
MEDIUM
rerender-
5
Rendering Performance
MEDIUM
rendering-
6
JavaScript Performance
LOW-MEDIUM
js-
7
Advanced Patterns
LOW
advanced-
Quick Reference
1. Eliminating Waterfalls (CRITICAL)
async-defer-await - Move await into branches where actually used
async-parallel - Use Promise.all()/allSettled() for independent operations
2. Bundle Size Optimization (CRITICAL)
bundle-dynamic-imports - React.lazy() for heavy components
bundle-defer-third-party - Load analytics/logging on demand
bundle-conditional - Load modules only when feature is activated
bundle-preload - Preload on hover/focus for perceived speed
3. Client-Side Data Fetching (MEDIUM-HIGH)
client-query-dedup - Use TanStack Query for automatic request deduplication
client-event-listeners - Deduplicate global event listeners
client-passive-event-listeners - Use passive listeners for scroll performance
client-localstorage-schema - Version and minimize localStorage data
4. Re-render Optimization (MEDIUM)
rerender-defer-reads - Don't subscribe to state only used in callbacks
rerender-memo - Extract expensive work into memoized components
rerender-dependencies - Use primitive dependencies in effects
rerender-derived-state - Subscribe to derived booleans, not raw values
rerender-functional-setstate - Use functional setState for stable callbacks
rerender-lazy-state-init - Pass function to useState for expensive values
rerender-transitions - Use startTransition for non-urgent updates
5. Rendering Performance (MEDIUM)
rendering-animate-svg-wrapper - Animate div wrapper, not SVG element
rendering-content-visibility - Use content-visibility for long lists