React performance
Skill ComeOnOliver/skillshub/skills/HoangNguyen0403/agent-skills-standard/react-performance
Optimization strategies for React applications (Client & Server). Use when optimizing React rendering performance, reducing re-renders, or improving bundle size. (triggers: **/*.tsx, **/*.jsx, waterfall, bundle, lazy, suspense, dynamic)From its SKILL.md
npx -y skills add ComeOnOliver/skillshub --skill react-performanceAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
2.7 KB, 602 tokens by cl100k_base, as published. Nobody here has run it
React Performance
Priority: P0 (CRITICAL)
Strategies to minimize waterfalls, bundle size, and render cost.
Elimination of Waterfalls (P0)
- Parallel Data: Use
Promise.all([getUser(), getProducts(), ...])for independent fetches. Avoid sequential awaits (Request Waterfalls). - Preload: Start fetches before render (in event handlers or route loaders).
- Suspense: Use Suspense boundaries to stream partial content and show partial content early.
Bundle Optimization (P0)
- No Barrel Files: Avoid barrel files (importing from index.ts); import directly from component files to improve tree-shaking.
- Lazy Load: Use
React.lazyornext/dynamicfor heavy components like Charts, Modals, or large libraries. - Dependency Reduction: Replace moment with dayjs or lodash with native/radash to drop bytes. Use
source-map-explorerorbundle-visualizerto find bloat.
Rendering & Re-renders (P1)
- Isolation: Move state as close to its usage as possible. Isolate heavy UI updates.
- List Performance: Use
react-windoworreact-virtualfor virtualization of lists with 500+ items. Wrap list items inReact.memo. - Context Splitting: Split Context into
StateandDispatchobjects. This prevents all consumers from re-rendering when only a setter is needed. - Stability: Use
useMemofor derived list data and passing stable object/array references to children. - Content Visibility:
content-visibility: autofor off-screen CSS content. - Static Hoisting: Extract static objects/JSX outside component scope.
- Transitions:
startTransitionfor non-urgent UI updates.
Parallelization (P1)
- Web Workers: Move heavy computation (Encryption, Image processing, Large Data Sorting) off the main thread using
ComlinkorWorker.
Server Performance (RSC) (P1)
- Caching:
React.cachefor per-request deduplication. - Serialization: Minimize props passing to Client Components (only IDs/primitives).
Anti-Patterns
- No
export *: Breaks tree-shaking. - No Sequential Await: Causes waterfalls.
- No Inline Objects:
style={{}}breaks strict equality checks (if memoized). - No Heavy Libs: Avoid moment/lodash (use dayjs/radash).
References
See references/REFERENCE.md for Profiler usage, bundle analysis, Web Workers, and debounce patterns.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.