인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
데이터 및 연구 · SKILL.md

react-performance

react-performance

Optimize React rendering, bundle size, and data flow with profiler-led decisions. Use when reducing re-renders, fixing waterfalls, or deciding whether memoization is warranted in React.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: react-performance description: Optimize React rendering, bundle size, and data flow with profiler-led decisions. Use when reducing re-renders, fixing waterfalls, or deciding whether memoization is warranted in React. metadata: triggers: files: - '/*.tsx' - '/*.jsx' keywords: - waterfall - bundle - lazy - suspense - dynamic

React Performance

Priority: P0 (CRITICAL)

Decision Map

  • Measure first: use React DevTools Profiler or app-level traces before adding memoization.
  • Waterfalls: parallelize independent reads with Promise.all and stream slow branches behind Suspense.
  • Rerenders: move state down, split context, and memoize only measured hot paths.
  • Bundle cost: lazy-load heavy islands, remove oversized dependencies, and avoid barrel files that fight tree-shaking.
  • Compiler-aware: if React Compiler is enabled, do not scatter useCallback/useMemo by reflex.

Recipe

  1. Find the hotspot: profiler flamegraph, bundle analyzer, or waterfall trace.
  2. Pick the narrow fix: state placement, context split, transition, lazy load, or memoization.
  3. Retest after change: confirm the render count or blocking time actually improved.
  4. Keep slow work off the main path: workers for heavy compute, streaming for slow I/O.

Verify

  • Independent reads are parallel, not sequential.
  • Effects are not driving derived state loops.
  • Memoization exists because of a measured hotspot or memoized child boundary.
  • Large lists are virtualized when needed.
  • Heavy client code is split behind lazy or route-level boundaries.

Anti-Patterns

  • No export *: Breaks tree-shaking.
  • No Sequential Await: Causes waterfalls.
  • No memo by superstition: profile before adding useMemo / useCallback.
  • No effect-driven derived state: compute during render unless syncing external systems.
  • No Heavy Libs: Avoid oversized dependencies when smaller choices exist.

References

Canonical response anchors

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

  • Split Context
저장한 Skills