
Nuxt offers experimental features like Server Components to take make performant applications. Let’s take a look back at how hydration works and how Nuxt handles Server Side Rendering.
Reza Baar
November 5, 2025
As developers, we know how important it is to reduce the amount of JavaScript we ship to the browser. And since Nuxt has been around, it has showed how powerful SSR can be for building performant applications.
Nuxt offers experimental features like Server Components to take our game to the next level but before using them, it’s important to take a look back at how hydration works and how Nuxt handles Server Side Rendering.
When you build a typical Nuxt application with SSR enabled, here's what happens:
On the Server:
On the Client (Hydration):
This hydration process is necessary but comes with overhead. Every component needs to be downloaded as JavaScript, executed on the client, and "woken up" to become interactive. The JavaScript for your entire application must be downloaded and parsed even if most of it renders static content.
Server components (also called component islands in Nuxt) fundamentally change this equation. They allow you to mark specific components to only render on the server and never hydrate on the client. They have some key benefits:
Server components shine in specific scenarios where you have expensive rendering logic but don't need client-side interactivity. For example:
In Nuxt 4, server components are still experimental but increasingly stable. Here's how to use them:
// nuxt.config.ts
export default defineNuxtConfig({
experimental: {
componentIslands: true
}
}
Simply add the .server.vue suffix to your component file:
components/
HighlightedCode.server.vue
SiteFooter.server.vue
MarkdownRenderer.server.vue
Use it like any component:
<template>
<div>
<HighlightedCode :code="myCode" language="typescript" />
<SiteFooter />
</div>
</template>
That's it! No special syntax in your template. The component renders on the server, and Nuxt sends only the HTML to the client.
While reducing JavaScript bundle size is the most tangible benefit, server components offer something deeper: architectural clarity. They force you to think about data flow, component boundaries, and where state truly lives. This discipline makes your applications more maintainable. When you see a .server.vue component, you immediately know it has no client-side dependencies, no reactivity, no event handlers. It's self-documenting architecture.
The convergence of server and client rendering represents the maturation of the JavaScript ecosystem. We're moving past the "SSR vs CSR" debates toward hybrid approaches that acknowledge both have their place.
Get the latest news and updates on developer certifications. Content is updated regularly, so please make sure to bookmark this page or sign up to get the latest content directly in your inbox.

Controlled vs Uncontrolled Components in React
Understanding controlled vs uncontrolled in React is about one question: who owns the state? Learn both meanings for form inputs and component design patterns.
Aurora Scharff
Dec 8, 2025

The 8 JavaScript Errors Every Developer Should Understand
Understanding JavaScript errors is essential for debugging efficiently. Discover the 8 native error types with clear explanations and practical examples.
Martin Ferret
Dec 5, 2025

Nuxt Hints: A new core module dropped right before the end of the year 🎁
The newest and hottest Nuxt module that was released right before the end of 2025: Nuxt Hints It gives real-time feedback on your app’s performance, accessibility, and security.
Reza Baar
Dec 3, 2025
We can help you recruit Certified Developers for your organization or project. The team has helped many customers employ suitable resources from a pool of 100s of qualified Developers.
Let us help you get the resources you need.
