AgentSkillsCN

react-frontend

提供使用 TypeScript 和 Tailwind CSS 构建 React 应用程序的最佳实践,涵盖组件设计、状态管理、数据获取、表单、性能优化,以及无障碍访问支持。适用于构建或修改 React 前端组件、Hooks 或页面时使用。

SKILL.md
--- frontmatter
name: react-frontend
description: Provides best practices for building React applications with TypeScript and Tailwind CSS, covering component design, state management, data fetching, forms, performance, and accessibility. Use when building or modifying React frontend components, hooks, or pages.

React Frontend Best Practices

Quick Start

Component Design

  • Use functional components with TypeScript interfaces for props
  • Keep components small and focused (single responsibility)
  • Use compound components for complex UI patterns
tsx
interface CardProps {
  title: string
  value: number
  onSelect?: () => void
}

function Card({ title, value, onSelect }: CardProps) {
  return (
    <div className="rounded border p-4" onClick={onSelect}>
      <h3>{title}</h3>
      <span>{value}</span>
    </div>
  )
}

State Management

State TypeSolution
Server/async dataTanStack Query
Form statereact-hook-form or useState
Local UI stateuseState
Shared UI stateContext or Zustand
URL stateReact Router

Data Fetching (TanStack Query)

tsx
function useData() {
  return useQuery({ queryKey: ["data"], queryFn: fetchData })
}

Styling with Tailwind

  • Use cn() utility for conditional classes
  • Define variant objects for component variants
  • Never use inline styles when Tailwind classes exist

File Naming

TypeConventionExample
ComponentsPascalCaseDashboardCard.tsx
HookscamelCase, use prefixuseDashboardData.ts
UtilitiescamelCaseformatDate.ts
ConstantsSCREAMING_SNAKE_CASEAPI_BASE_URL

Performance

  • Memoize expensive computations with useMemo
  • Memoize callbacks passed to children with useCallback
  • Don't memoize prematurely — measure first

Additional Resources

  • For complete patterns including forms, routing, error handling, testing, and accessibility, see reference.md