Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
oakoss avatar

React Performance

  • 107 installs
  • 14 repo stars
  • Updated March 2, 2026
  • oakoss/agent-skills

Helps with frontend development tasks during AI-assisted development.

About

react-performance is a Claude Code skill for frontend development. It helps solo builders move faster with AI-assisted coding.

  • react-performance
  • Frontend Development
  • AI-coding skill

React Performance by the numbers

  • 107 all-time installs (skills.sh)
  • +6 installs in the week ending Aug 4, 2026 (Skillselion tracking)
  • Ranked #1,039 of 2,245 Frontend Development skills by installs in the Skillselion catalog
  • Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oakoss/agent-skills --skill react-performance

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs107
repo stars14
Last updatedMarch 2, 2026
Repositoryoakoss/agent-skills

What it does

Helps with frontend development tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

React Performance

Overview

Dedicated performance optimization skill for React applications. Covers the full spectrum from build-time optimizations (code splitting, barrel file avoidance) through runtime techniques (memoization, transitions, content-visibility) to diagnostic tooling (React DevTools Profiler, bundle analyzers).

When to use: Reducing Time to Interactive, shrinking bundle size, eliminating re-renders, profiling slow components, optimizing large lists, lazy loading heavy dependencies, auditing React app performance.

When NOT to use: General React component patterns (use react-patterns skill), framework-specific optimizations like Next.js caching (use framework skill), non-React performance (network, database, CDN).

Quick Reference

CategoryTechniqueKey Points
CompilerReact CompilerAutomatic memoization at build time; eliminates manual memo/useMemo/useCallback
MemoizationReact.memo(Component)Wrap components receiving stable primitive props from frequently re-rendering parents
MemoizationuseMemo(fn, deps)Expensive computations only: sorting, filtering, Set/Map construction
MemoizationuseCallback(fn, deps)Only when passed to memoized children; use functional setState for stable refs
SplittingReact.lazy(() => import())Lazy-load heavy components with <Suspense> fallback
SplittingPreload on intentTrigger import() on hover/focus for perceived speed
BundleDirect importsAvoid barrel files; import from specific paths to reduce module count
BundleDefer third-partyLoad analytics, logging after hydration
Re-rendersstartTransitionMark non-urgent updates (search, scroll tracking) as interruptible
Re-rendersFunctional setStatesetState(prev => ...) eliminates state dependencies from callbacks
Re-rendersDerived stateSubscribe to booleans, not continuous values; compute during render
Re-rendersDefer state readsRead dynamic state (searchParams) inside callbacks, not at render
Renderingcontent-visibility: autoSkip layout/paint for off-screen items in long lists
RenderingHoist static JSXExtract constant elements outside component functions
ProfilingReact DevTools ProfilerRecord renders, identify slow components, flamegraph analysis
ProfilingBundle analyzerVisualize chunk sizes, find oversized dependencies

Common Mistakes

MistakeCorrect Pattern
Wrapping everything in useMemo/useCallbackTrust React Compiler first; only memoize expensive computations or memoized-child callbacks
Memoizing cheap operations like value * 2Skip memo for simple primitives; overhead exceeds recomputation cost
Importing from barrel files (lucide-react, @mui/material)Import directly from specific paths or use optimizePackageImports
Loading analytics/tracking in the initial bundleDefer with lazy + mounted state to load after hydration
Subscribing to continuous values (window width) for boolean checksUse useMediaQuery or derived boolean to re-render only on threshold change
Referencing state in useCallback dependency arrayUse functional setState setState(prev => ...) for stable callbacks
Using useEffect to derive state from propsCompute derived values during render; effects add an extra render cycle
Creating new object literals as props on every renderHoist static objects outside component; use useMemo for dynamic objects
Profiling in development modeAlways profile production builds; dev mode includes extra warnings that skew results

Delegation

  • Profile and diagnose performance bottlenecks: Use Explore agent to run React DevTools Profiler, analyze bundle composition, and trace re-render cascades
  • Apply performance optimizations to existing code: Use Task agent to implement code splitting, add memoization boundaries, and optimize rendering
  • Plan performance improvement strategy: Use Plan agent to prioritize optimizations by impact (waterfalls > bundle > re-renders) and create an optimization roadmap
If the react-patterns skill is available, delegate general component architecture and React 19 API questions to it.
Otherwise, recommend: npx skills add oakoss/agent-skills --skill react-patterns

References

  • Rendering optimization: memo, useMemo, useCallback, compiler, re-render elimination
  • Code splitting: React.lazy, Suspense, dynamic imports, bundle optimization
  • Profiling and debugging: DevTools, performance measurement, common bottlenecks

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.