PluginBench
Rule

react

via PatrickJS/awesome-cursorrules

React best practices and patterns for modern web applications

What is react?

Comprehensive guide for building scalable React applications using functional components, hooks, and modern patterns. Use this rule when developing React components to ensure code follows industry best practices for structure, performance, state management, and accessibility.

  • Use functional components with custom hooks for reusable logic and composition
  • Implement proper state management with useState, useReducer, and Context API to avoid prop drilling
  • Optimize performance with memoization, React.memo, and proper dependency arrays in effects
  • Build accessible, semantic forms with validation and proper error handling using Error Boundaries
  • Write testable components with React Testing Library and implement proper keyboard navigation and ARIA attributes
  • Organize code with clear file structure, naming conventions, and keep styles colocated with components

Applies to

File patterns this rule matches.

**/*.tsx
**/*.jsx
components/**/*
Rule definition (reference)

Source of truth, from the repository.

React Best Practices

Component Structure

  • Use functional components over class components
  • Keep components small and focused
  • Extract reusable logic into custom hooks
  • Use composition over inheritance
  • Implement proper prop types with TypeScript
  • Split large components into smaller, focused ones

Hooks

  • Follow the Rules of Hooks
  • Use custom hooks for reusable logic
  • Keep hooks focused and simple
  • Use appropriate dependency arrays in useEffect
  • Implement cleanup in useEffect when needed
  • Avoid nested hooks

State Management

  • Use useState for local component state
  • Implement useReducer for complex state logic
  • Use Context API for shared state
  • Keep state as close to where it's used as possible
  • Avoid prop drilling through proper state management
  • Use state management libraries only when necessary

Performance

  • Implement proper memoization (useMemo, useCallback)
  • Use React.memo for expensive components
  • Avoid unnecessary re-renders
  • Implement proper lazy loading
  • Use proper key props in lists
  • Profile and optimize render performance

Forms

  • Use controlled components for form inputs
  • Implement proper form validation
  • Handle form submission states properly
  • Show appropriate loading and error states
  • Use form libraries for complex forms
  • Implement proper accessibility for forms

Error Handling

  • Implement Error Boundaries
  • Handle async errors properly
  • Show user-friendly error messages
  • Implement proper fallback UI
  • Log errors appropriately
  • Handle edge cases gracefully

Testing

  • Write unit tests for components
  • Implement integration tests for complex flows
  • Use React Testing Library
  • Test user interactions
  • Test error scenarios
  • Implement proper mock data

Accessibility

  • Use semantic HTML elements
  • Implement proper ARIA attributes
  • Ensure keyboard navigation
  • Test with screen readers
  • Handle focus management
  • Provide proper alt text for images

Code Organization

  • Group related components together
  • Use proper file naming conventions
  • Implement proper directory structure
  • Keep styles close to components
  • Use proper imports/exports
  • Document complex component logic

Related rules

Senior full-stack TypeScript, React, Node.js guidance with clean architecture, testing, and WHY-oriented reasoning.

**/*
41k
via PatrickJS/awesome-cursorrules

Quantitative factor research skills for designing, evaluating, and mining alpha factors in equities markets.

**/*
41k
via PatrickJS/awesome-cursorrules

Android development with Jetpack Compose, clean architecture, and Material Design 3.

**/*
41k
via PatrickJS/awesome-cursorrules

Angular development with Novo Elements UI library using standalone components.

**/*
41k
via PatrickJS/awesome-cursorrules

Expert Angular 18 + TypeScript development with Jest, emphasizing clean code and performance.

**/*
41k
via PatrickJS/awesome-cursorrules

Manage Kubernetes clusters, add-ons, stacks, and credentials via the Ankra CLI platform.

**/*.sh +5
41k
via PatrickJS/awesome-cursorrules