Strengths
- Reduces client bundle size by excluding server-only code from browser downloads.
- Enables direct server data fetching during render, avoiding extra client-server round trips.
- Supports streaming of rendered output for faster initial page loads without full hydration.
- Preserves client state and focus during Server Component updates or refetches.
- Allows dynamic selection of Client Components per page, downloading only necessary interactive code.
Limitations
- Server Components cannot use client-only hooks like useState or browser APIs.