React Server Components (RSC): The end of the Waterfall
On this page
React Server Components (RSC)
RSC is the biggest architectural shift in React since Hooks. It allows you to run components Only on the Server. They never download to the client, which means Zero Bundle Size for complex backend logic.
1. Client vs Server Components
- Server Components: (Default in App Router). Can be
async. Can fetch data directly from the DB. NO state or effects. - Client Components: (Use 'use client'). Can have state, effects, and event listeners. Downloaded to the browser.
2. Fixing the Waterfall
In traditional React, Child fetches data after Parent finishes. This is a "Waterfall." In RSC, the server can fetch all data in parallel before even sending the page, making the initial load feel like a static site even if it is dynamic.
4. Interview Mastery
Q: "Does RSC mean we don't need APIs anymore?"
Architect Answer: "For simple sites, yes. You can fetch data directly in your Server Component. However, for enterprise apps, we still need APIs (or Server Actions) because the Client Components still need to 'Talk' to the server for user interactions (liking a post, submitting a form). RSC just changes *where* the data fetching for the initial UI happens."