react-best-practices
1
总安装量
1
周安装量
#43319
全站排名
安装命令
npx skills add https://github.com/dokhacgiakhoa/antigravity-ide --skill react-best-practices
Agent 安装分布
amp
1
opencode
1
kimi-cli
1
github-copilot
1
antigravity
1
Skill 文档
React & Next.js Best Practices
Goal: Build high-performance, maintainable, and accessible React applications using modern patterns (React 19+, Next.js App Router).
1. Architecture & Rendering
- App Router First: Use Next.js App Router (
app/) for all new projects. - Server Components (RSC): Default to Server Components. Only add
'use client'when interactivity (state, hooks, event listeners) is strictly needed. - Suspense & Streaming: Use
<Suspense>boundaries to stream UI parts that depend on slow data. - Data Fetching: Fetch data in Server Components directly (async/await components). Avoid
useEffectfor data fetching.
2. Component Patterns
- Composition: Use
childrenprop to tackle prop drilling. - Atomic Design: Organize components by atomicity (though feature-based folder structure is preferred for scale).
- Custom Hooks: Extract complex logic into
useHookName. - Props: Use strict TypeScript interfaces for props. Avoid
any.
3. State Management
- URL as State: Store shareable state (filters, pagination) in URL Search Params.
- Server State: Use React Query (TanStack Query) or SWR for client-side data fetching/caching if RSC is not applicable.
- Global State: Minimal use of Zustand/Context. Prefer local state + composition.
4. Performance Optimization
- Images: Always use
next/imagewith properwidth,height, andsizes. - Fonts: Use
next/fontto eliminate layout shift (CLS). - Lazy Loading: Use
next/dynamicorReact.lazyfor heavy client components below the fold. - Bundle Analysis: Regularly check bundle size with
@next/bundle-analyzer.
5. Styling
- Tailwind CSS: Use utility-first styling.
- CN Utility: Use
clsx+tailwind-merge(typicallycn()helper) for conditional class merging. - Mobile First: Write styles for mobile first, then add
md:,lg:prefixes.
6. Directory Structure (Feature-First)
app/
âââ (marketing)/ # Route group
âââ dashboard/
â âââ page.tsx
â âââ layout.tsx
â âââ _components/ # Private feature components
â âââ loading.tsx
components/ # Shared components (UI Kit)
lib/ # Utilities and helpers
hooks/ # Shared hooks
types/ # Global types
7. Security
- XSS: React escapes by default, but be careful with
dangerouslySetInnerHTML. - Auth: Use
NextAuth.js(Auth.js) or Clerk. Protect routes via Middleware.
Checklist before PR:
- Is
'use client'used only where necessary? - Are lists using stable
keyprops? - Is data fetched on the server where possible?
- Are images optimized?