Learn-skills.dev react-best-practices

React best practices from react.dev and Vercel. Use when: (1) Reviewing React code, (2) Debugging performance issues, (3) Optimizing bundle size, (4) Writing effects or state logic. Triggers on: React performance, re-render, bundle size, waterfalls, code splitting, memo, useCallback, useMemo, useEffect, SSR flicker, initial load slow, React Compiler, state structure, immutable update, setState array object.

install
source · Clone the upstream repo
git clone https://github.com/NeverSight/learn-skills.dev
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/NeverSight/learn-skills.dev "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/skills-md/ahonn/dotfiles/react-best-practices" ~/.claude/skills/neversight-learn-skills-dev-react-best-practices-9667b7 && rm -rf "$T"
manifest: data/skills-md/ahonn/dotfiles/react-best-practices/SKILL.md
source content

React Best Practices

Performance patterns and guidelines from react.dev and Vercel Engineering.

Quick Reference (Priority Order)

CRITICAL - Must Follow

RuleImpactReference
Avoid unnecessary effectsRender cycles, bugseffect-pitfalls.md
Eliminate waterfallsFirst paint, TTIasync-waterfall-elimination.md
Parallel data fetchingLoad timeasync-parallel-requests.md
Avoid barrel importsBundle sizebundle-barrel-imports.md

HIGH - Strongly Recommended

RuleImpactReference
React Compiler (19+)Auto memoizationreact-compiler.md
Dynamic importsCode splittingbundle-dynamic-import.md
Preload on user intentPerceived latencybundle-preload.md
Strategic memo()Render perfrerender-memo-strategy.md
Server cachingServer responseserver-cache-patterns.md

MEDIUM - Recommended

RuleImpactReference
State structureMaintainabilitystate-structure.md
Immutable updatesAvoid mutation bugsimmutable-updates.md
Context splittingAvoid rerendersrerender-context-splitting.md
startTransitionUI responsivenessrerender-transitions.md
Set/Map lookupsO(1) vs O(n)js-set-map-lookups.md
Key patternsList renderingrendering-key-patterns.md

LOW - Nice to Have

RuleImpactReference
content-visibilityLong list renderrendering-content-visibility.md
Hydration flickerSSR stabilityrendering-hydration-flicker.md
Hoist static JSXAvoid re-creationrendering-hoist-static-jsx.md

Quick Decision Tree

React Issue?
├── Writing useEffect?
│   └── Check if needed → effect-pitfalls.md (CRITICAL)
├── Designing state?
│   └── Follow 5 principles → state-structure.md
├── Updating state?
│   └── Use immutable patterns → immutable-updates.md
├── Using React 19+?
│   └── Enable React Compiler → react-compiler.md
├── Slow initial load?
│   ├── Check for waterfalls → async-waterfall-elimination.md
│   ├── Check bundle size → bundle-barrel-imports.md
│   └── Preload on intent → bundle-preload.md
├── Slow interactions?
│   ├── Check re-renders → rerender-memo-strategy.md
│   ├── Check Context usage → rerender-context-splitting.md
│   └── Use transitions → rerender-transitions.md
├── Long list jank?
│   └── Use content-visibility → rendering-content-visibility.md
├── SSR flicker?
│   └── Inline script pattern → rendering-hydration-flicker.md
└── Slow server?
    └── Check caching → server-cache-patterns.md

Reference Files

FileContent
hooks-guide.mdHook patterns, decision guides, pitfalls
effect-pitfalls.mdWhen NOT to use useEffect
react-compiler.mdReact 19+ auto memoization
state-structure.md5 principles for state design
immutable-updates.mdArray/object update patterns
references/All reference files (19 total)

Search rules:

grep -l "keyword" references/