When to use Server Components vs. Client Components

When to use Server Components vs. Client Components

Server Components are used :

  • Fetch data

  • Access backend resources(directly)

  • Keep sensitive information on the server(access token API keys, etc)

  • Keep large dependencies on the server / Reduce client-side JavaScript.

Client Components are used :

  • Add interactivity & event listeners (onClick(), onChange(), etc.

  • Use State & life Cycle Effects (useState(), useReducer(), useEffect(), etc.

  • Use browser-only APIs.

  • Use custom hooks that depend on state, effects, or browser-only APIs.

  • Use React Class Components.