react
34
总安装量
33
周安装量
#10924
全站排名
安装命令
npx skills add https://github.com/dalestudy/skills --skill react
Agent 安装分布
opencode
32
claude-code
32
github-copilot
32
codex
32
kimi-cli
32
gemini-cli
32
Skill 文档
React
Vercel ê°ì´ë ê¸°ë° React ì±ë¥ ìµì í ë² ì¤í¸ íëí°ì¤. íë ììí¬ ë¹ì¢ ì(Next.js, Remix, Vite ë± ë¬´ê´).
ê° ê·ì¹ì ìì¸ ì¤ëª ê³¼ ì½ë ìì ë references/ ì°¸ê³ . ì본 Vercel ê°ì´ëì ì ì²´ ê·ì¹(Next.js/SSR í¬í¨)ì vercel-react-best-practices ì°¸ê³ .
ê·ì¹ ì¹´í ê³ ë¦¬
| ì°ì ìì | ì¹´í ê³ ë¦¬ | ìí¥ë | ì ëì¬ |
|---|---|---|---|
| 1 | ë¹ë기 ìí°í´ ì ê±° | CRITICAL | async- |
| 2 | ë²ë¤ ì¬ì´ì¦ ìµì í | CRITICAL | bundle- |
| 3 | 리ë ëë§ ìµì í | MEDIUM | rerender- |
| 4 | ë ëë§ ì±ë¥ | MEDIUM | rendering- |
| 5 | í´ë¼ì´ì¸í¸ ë°ì´í°/ì´ë²¤í¸ | MEDIUM | client- |
| 6 | JavaScript ì±ë¥ | LOW-MEDIUM | js- |
| 7 | ê³ ê¸ í¨í´ | LOW | advanced- |
ë¹ ë¥¸ 참조
1. ë¹ë기 ìí°í´ ì ê±° (CRITICAL)
async-parallel–Promise.all()ë¡ ë 립 ìì ë³ë ¬íasync-defer-await– ë¶íìí ê²½ë¡ìì await ì§ì°async-suspense-boundaries– Suspenseë¡ ë¶ë¶ ë ëë§async-dependencies– ë¶ë¶ ìì¡´ì± ìë ìì ì ìµë ë³ë ¬í
2. ë²ë¤ ì¬ì´ì¦ ìµì í (CRITICAL)
bundle-barrel-imports– barrel file ì§ì import ì§ìbundle-lazy–React.lazyë¡ ì½ë ì¤í리íbundle-preload– hover/focus ì í리ë¡ëbundle-conditional– ê¸°ë¥ íì±í ììë§ ëª¨ë ë¡ëbundle-defer-third-party– ë¹íì ìëíí° íì´ëë ì´ì í ë¡ë
3. 리ë ëë§ ìµì í (MEDIUM)
rerender-functional-setstate– í¨ìí setStateë¡ ìì ì ì½ë°±rerender-lazy-state-init– ë¹ì© í° ì´ê¸°ê° ì§ì° ì´ê¸°írerender-derived-state– íì boolean 구ërerender-dependencies– Effect ìì¡´ì± ì¢í기rerender-memo– memoë¡ ë¹ì© í° ìì ë¶ë¦¬rerender-transitions– startTransitionì¼ë¡ UI ë°ìì± ì ì§rerender-ref-callbacks– ref callbackì¼ë¡ DOM ì ê·¼ (useRef+useEffect ëì²´)rerender-avoid-usestate– useState ëì²´ í¨í´ íë¨ ê°ì´ërerender-url-state– URL ê²ì 매ê°ë³ìë¡ ìí ê´ë¦¬rerender-form-libraries– í¼ ë¼ì´ë¸ë¬ë¦¬ë¡ useState ì ê±°rerender-discriminated-union– discriminated unionì¼ë¡ ë¶ê°ë¥í ìí ë°©ì§rerender-use-reducer– useReducerë¡ ë³µì¡í ìí ì ì´rerender-derived-state-no-effect– íì ìí를 ë ëë§ ì¤ ê³ì°rerender-defer-reads– ìí ì½ê¸°ë¥¼ ì¬ì© ìì ì¼ë¡ ì§ì°rerender-memo-with-default-value– memo ì»´í¬ëí¸ ê¸°ë³¸ê° ìì ì¶ì¶rerender-move-effect-to-event– ì¸í°ëì ë¡ì§ì ì´ë²¤í¸ í¸ë¤ë¬ë¡ ì´ërerender-simple-expression-in-memo– ë¨ì ííìì useMemo ì¬ì© ê¸ì§rerender-use-ref-transient-values– ì¼ìì ê°ì useRef ì¬ì©rerender-simplify-useeffect– useEffect를 커ì¤í í ì¼ë¡ ë¨ìí
4. ë ëë§ ì±ë¥ (MEDIUM)
rendering-animate-svg-wrapper– SVG ëí¼ë¡ GPU ê°ìrendering-content-visibility– 긴 ëª©ë¡ ì¤íì¤í¬ë¦° ìµì írendering-hoist-jsx– ì ì JSX í¸ì´ì¤írendering-conditional-render– ì¼í ì°ì°ìë¡ falsy ë²ê·¸ ë°©ì§rendering-hydration-no-flicker– íì´ëë ì´ì ë¶ì¼ì¹ ìì´ ê¹ë¹¡ì ë°©ì§rendering-activity– Activity/CSSë¡ ìí/DOM ë³´ì¡´rendering-svg-precision– SVG ì¢í ì ë°ë ì¶ì (SVGO)rendering-usetransition-loading– useTransitionì¼ë¡ ìë ë¡ë© ìí ëì²´rendering-inp-css-feedback– CSS :active + yieldë¡ INP ê°ìrendering-composition-vs-early-return– Composition vs Early Return ì í 기ì¤
5. í´ë¼ì´ì¸í¸ ë°ì´í°/ì´ë²¤í¸ (MEDIUM)
client-passive-event-listeners– passiveë¡ ì¤í¬ë¡¤ ì§ì° ì ê±°client-localstorage-schema– localStorage ë²ì ê´ë¦¬client-sync-external-store– useSyncExternalStoreë¡ ë¸ë¼ì°ì API/ì¸ë¶ ì¤í ì´ êµ¬ëclient-event-listeners– ê¸ë¡ë² ì´ë²¤í¸ 리ì¤ë ì¤ë³µ ì ê±°client-data-dedup– TanStack Query/SWRë¡ ë°ì´í° íì¹ ì¤ë³µ ì ê±°client-abort-redundant-work– AbortControllerë¡ ë¶íìí ë¹ë기 ìì ì·¨ì
6. JavaScript ì±ë¥ (LOW-MEDIUM)
js-index-maps– Mapì¼ë¡ O(1) ì¡°íjs-tosorted-immutable– toSorted()ë¡ ë¶ë³ì± ì ì§js-set-map-lookups– Setì¼ë¡ O(1) 멤ë²ì ê²ì¬js-early-exit– 조기 ë°íì¼ë¡ ë¶íìí ì²ë¦¬ ë°©ì§js-batch-dom-css– DOM ì½ê¸°/ì°ê¸° ë¶ë¦¬ë¡ ë ì´ìì ì¤ëì± ë°©ì§js-cache-function-results– ë°ë³µ í¨ì í¸ì¶ 모ë ë 벨 ìºì±js-cache-property-access– 루í ë´ íë¡í¼í° ì ê·¼ ìºì±js-cache-storage– localStorage/cookie ì½ê¸° ë©ëª¨ë¦¬ ìºì±js-combine-iterations– ë³µì ë°°ì´ ìí를 ë¨ì¼ 루íë¡js-hoist-regexp– RegExp를 모ë ì¤ì½íë¡ í¸ì´ì¤íjs-length-check-first– ë°°ì´ ë¹êµ ì ê¸¸ì´ ë¨¼ì íì¸js-min-max-loop– ì ë ¬ ëì ë¨ì¼ 루íë¡ min/maxjs-iterator-helpers– Iterator Helperë¡ ì§ì° ì²ë¦¬
7. ê³ ê¸ í¨í´ (LOW)
advanced-event-handler-refs– ì´ë²¤í¸ í¸ë¤ë¬ë¥¼ refì ì ì¥ (ì¬êµ¬ë ë°©ì§)advanced-use-latest– useEffectEvent/useLatestë¡ ìì ì ì½ë°± refadvanced-init-once– ì± ì´ê¸°í를 ì»´í¬ëí¸ê° ìë 모ë ë 벨ììadvanced-closure-scope– í´ë¡ì ì¤ì½í ê²©ë¦¬ë¡ ë©ëª¨ë¦¬ ëì ë°©ì§
Vercel ì본 ê°ì´ë ì¶ê° ê·ì¹
ì´ ì¤í¬ì íë ììí¬ ë¹ì¢ ì ê·ì¹ë§ í¬í¨. Next.js/SSR ì ì© ê·ì¹ì ì본 ì°¸ê³ :
| ê·ì¹ | ìí¥ë | ì¤ëª |
|---|---|---|
server-cache-react |
MEDIUM | React.cache()ë¡ ìì² ë´ ì¤ë³µ ì ê±° |
server-cache-lru |
HIGH | LRU ìºìë¡ ìì² ê° ìºì± |
server-serialization |
HIGH | RSC ê²½ê³ìì ì§ë ¬í ìµìí |
server-parallel-fetching |
CRITICAL | ì»´í¬ëí¸ êµ¬ì±ì¼ë¡ ìë² ë°ì´í° ë³ë ¬ íì¹ |
server-after-nonblocking |
MEDIUM | after()ë¡ ë
¼ë¸ë¡í¹ íì²ë¦¬ |
server-auth-actions |
MEDIUM | ìë² ì¡ì ì¸ì¦ ê²ì¦ |
server-dedup-props |
LOW | ì¤ë³µ props ì ê±° |
bundle-dynamic-imports |
CRITICAL | next/dynamicì¼ë¡ ëì ìí¬í¸ |
rendering-hydration-suppress-warning |
LOW | suppressHydrationWarning ì¬ì© |
async-api-routes |
MEDIUM | API ë¼ì°í¸ ë¹ë기 í¨í´ |
ì본 ì ì²´ 문ì: vercel-labs/agent-skills: react-best-practices
ì°¸ê³
- React ê³µì 문ì
- React Compiler – ì¬ì© ì
memo(),useMemo()ìë ì ì© ë¶íì - Vercel: How we made the dashboard twice as fast
- Vercel: How we optimized package imports