react-patterns

Modern React patterns and principles. Hooks, composition, performance, TypeScript best practices.

View Source
name:react-patternsdescription:Modern React patterns and principles. Hooks, composition, performance, TypeScript best practices.allowed-tools:Read, Write, Edit, Glob, Grep

React Patterns

> Principles for building production-ready React applications.


1. Component Design Principles

Component Types

TypeUseState
ServerData fetching, staticNone
ClientInteractivityuseState, effects
PresentationalUI displayProps only
ContainerLogic/stateHeavy state

Design Rules

  • One responsibility per component

  • Props down, events up

  • Composition over inheritance

  • Prefer small, focused components

  • 2. Hook Patterns

    When to Extract Hooks

    PatternExtract When
    useLocalStorageSame storage logic needed
    useDebounceMultiple debounced values
    useFetchRepeated fetch patterns
    useFormComplex form state

    Hook Rules

  • Hooks at top level only

  • Same order every render

  • Custom hooks start with "use"

  • Clean up effects on unmount

  • 3. State Management Selection

    ComplexitySolution
    SimpleuseState, useReducer
    Shared localContext
    Server stateReact Query, SWR
    Complex globalZustand, Redux Toolkit

    State Placement

    ScopeWhere
    Single componentuseState
    Parent-childLift state up
    SubtreeContext
    App-wideGlobal store


    4. React 19 Patterns

    New Hooks

    HookPurpose
    useActionStateForm submission state
    useOptimisticOptimistic UI updates
    useRead resources in render

    Compiler Benefits

  • Automatic memoization

  • Less manual useMemo/useCallback

  • Focus on pure components

  • 5. Composition Patterns

    Compound Components

  • Parent provides context

  • Children consume context

  • Flexible slot-based composition

  • Example: Tabs, Accordion, Dropdown
  • Render Props vs Hooks

    Use CasePrefer
    Reusable logicCustom hook
    Render flexibilityRender props
    Cross-cuttingHigher-order component


    6. Performance Principles

    When to Optimize

    SignalAction
    Slow rendersProfile first
    Large listsVirtualize
    Expensive calcuseMemo
    Stable callbacksuseCallback

    Optimization Order

  • Check if actually slow

  • Profile with DevTools

  • Identify bottleneck

  • Apply targeted fix

  • 7. Error Handling

    Error Boundary Usage

    ScopePlacement
    App-wideRoot level
    FeatureRoute/feature level
    ComponentAround risky component

    Error Recovery

  • Show fallback UI

  • Log error

  • Offer retry option

  • Preserve user data

  • 8. TypeScript Patterns

    Props Typing

    PatternUse
    InterfaceComponent props
    TypeUnions, complex
    GenericReusable components

    Common Types

    NeedType
    ChildrenReactNode
    Event handlerMouseEventHandler
    RefRefObject<Element>


    9. Testing Principles

    LevelFocus
    UnitPure functions, hooks
    IntegrationComponent behavior
    E2EUser flows

    Test Priorities

  • User-visible behavior

  • Edge cases

  • Error states

  • Accessibility

  • 10. Anti-Patterns

    ❌ Don't✅ Do
    Prop drilling deepUse context
    Giant componentsSplit smaller
    useEffect for everythingServer components
    Premature optimizationProfile first
    Index as keyStable unique ID


    > Remember: React is about composition. Build small, combine thoughtfully.

      react-patterns - Agent Skills