Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

React Server Components (RSC) are components that render ahead of time in an environment separate from the browser app or the server that renders HTML. They can run during a build or on a server for each request, giving them access to server-side data while keeping their implementation code and dependencies out of the browser bundle. They do not replace Client Components: interactive parts of an application still run on the client.

What are React Server Components?

React defines Server Components as a type of component that renders before bundling in a separate environment from the client app or the server-side rendering (SSR) server. This distinction matters: a Server Component is not simply a regular component rendered to HTML with react-dom/server. React’s server-rendering APIs produce HTML; the Server Components model describes where component code runs and how server-rendered content is composed with client-side code.

Because Server Components run outside the browser, they can read files or query a data layer while rendering. Their component implementation and server-only dependencies do not need to be sent to the browser. The browser receives rendered output along with the JavaScript needed for Client Components.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Where do Server Components run?

Server Components can run at build time or at request time. These are two ways to use the same model, not separate kinds of components.

  • At build time: A component can render static content as the application is built, without a web server handling that rendering. React’s example renders markdown during the build, so the browser receives the rendered result rather than the component code or markdown-processing libraries.
  • At request time: A component can read from a data layer while a server handles a page request, then pass the results or rendered content to Client Components. A framework coordinates the component graph and output; a separate API endpoint for every server-side read is not inherently required.

A framework may also render initial HTML on the server. That HTML rendering can work alongside Server Components, but it is not what defines them.

How are Server Components different from Client Components?

Server and Client Components serve different roles in a React tree. An application can compose them together rather than choosing one model for the entire interface.

Aspect Server Components Client Components
Execution Render in a separate build-time or server environment before bundling. Run in the browser.
Data and APIs Can access server-side data, such as files or a data layer, during rendering. Use browser-available data and APIs.
Browser bundle The component implementation and its server-only dependencies stay out of the browser bundle. The code needed for the component must be available in the browser.
Interactivity Cannot use interactive APIs such as useState. Handle state and user interaction.

For example, a Server Component can load notes and render a Client Component around each note to provide an expand-and-collapse button. The server handles the data read and server-only rendering work; the client component handles the interactive behavior.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keeping server-only code out of the browser can reduce the client code an application needs to deliver, and server-side data access can avoid a client-side fetch in some designs. Neither mechanism guarantees a faster page or a particular bundle-size reduction: results depend on the application and framework.

Does use server mark a Server Component?

No. React says there is no directive for Server Components. The 'use server' directive marks Server Functions: asynchronous functions that run on the server and can be called from client-side code through a framework integration. Calling one from the browser causes a request to the server; it does not turn a component into a Server Component.

By contrast, 'use client' marks a Client Component entry point. A Server Component can import and render a Client Component, composing interactive behavior into the result. A Server Component can also render a context provider imported from a Client Component module; Client Components below that provider can read its value, although Server Components cannot create context themselves.

How do async rendering and Suspense fit in?

A Server Component can be an async function and use await during rendering. React suspends that component while its promise resolves, and Suspense can help coordinate streamed output across the server/client boundary.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

One pattern is to await essential data on the server while starting a lower-priority request, such as comments, separately. The component can pass that promise to a Client Component that reads it with use beneath a Suspense boundary. This lets an application prioritize content, but it does not guarantee a faster page; the outcome depends on the data, rendering strategy, and framework.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What are Server Functions and Server Actions?

A Server Function is an asynchronous function executed on the server that client-side code can invoke through a reference provided by the framework. It is separate from a Server Component, which renders as part of the component tree. React uses “Server Action” more narrowly for a Server Function passed to an action prop or called from an action context.

What should developers check before adopting RSC?

Server Components require framework or bundler support; they are not enabled just by adding a directive to a component. React describes the framework-level implementation work as substantial. Its “Creating a React App” guide names Next.js App Router as the most complete implementation in that guide, but that is a statement about the guide’s coverage, not a permanent ranking of frameworks. Check current framework documentation for support, integration maturity, deployment constraints, and compatibility with the React version in use.

React distinguishes stable user-facing features from the lower-level APIs used by frameworks and bundlers to implement them. The Server Components and Server Functions references say the user-facing features in React 19 are stable across minor versions, while the underlying implementation APIs do not follow semver and may change between React 19.x minor releases. React recommends framework and bundler authors pin to a specific React version or use Canary while those APIs are being stabilized. This caveat is directed at implementers of RSC support; it does not mean every application-level feature is unstable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Further reading from React

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.