Server-only components for optimal performance, default in App Router. Ideal for Modern apps, Data-heavy applications, and Secure apps requiring server-side logic.
RSC uses Server Components by default in App Router. Server Components cannot import Client Components.
// Server Component (default)
export default async function ServerComponent() {
const res = await fetch("https://api.example.com/data");
const data = await res.json();
return (
<div>
<h1>{data.title}</h1>
<ClientComponent data={data} />
</div>
);
}
// Client Component (when needed)
"use client";
import { useState } from "react";
export function ClientComponent({ data }: { data: any }) {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(count + 1)}>{count}</button>;
}