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.