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.

In the Next.js App Router, pages and layouts are Server Components by default. Use them for server-side data access and UI that does not need browser features; use Client Components for state, event handlers, effects, and browser APIs. In most apps, the best choice is not all-server or all-client: keep the interactive client boundary as small as practical, then compose it with server-rendered content.

What Server and Client Components mean in Next.js

“Server” and “Client” describe where a component’s code can run and the capabilities it can use—not simply whether it produces HTML. On an initial page load, Next.js pre-renders HTML using the component tree and the React Server Component (RSC) payload. That payload contains rendered Server Component output, placeholders and JavaScript references for Client Components, and props passed between them. The browser uses it to reconcile the tree, then hydrates Client Components by attaching event handlers.

On later navigations, Next.js can prefetch and cache the RSC payload; Client Components are rendered on the client. Server Components themselves do not add their own JavaScript to the browser bundle. These are framework behaviors, not a guarantee that every route is static, instantly rendered, or faster in every application. See the [Next.js Server and Client Components guide](https://nextjs.org/docs/app/getting-started/server-and-client-components).

When should you use a Server Component?

For server-side data access

Use a Server Component when it needs to read from a database, ORM, or private API. The work can happen near its data source, and server-side credentials and query logic are not included in the client bundle. That does not replace authorization: verify that each request is allowed to access the requested data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

For content that needs no browser capability

Pages, layouts, and content-focused UI that need no local state, effects, event handlers, or browser APIs are good starting points for Server Components. They can render without adding their own JavaScript to the client bundle, and Next.js can pre-render content for the initial response.

When the server can prepare UI for an interactive area

A Server Component can fetch or prepare content and render a Client Component where interaction is needed. It can also pass server-rendered UI as a slot, commonly through children, to a Client Component such as a modal. This lets the modal provide client-side behavior without requiring all of its displayed content to be authored as client-side code.

When do you need a Client Component?

Use a Client Component when the UI depends on React capabilities or browser features that are unavailable during server rendering. Typical cases include:

Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.
  • Local state or interactive form input.
  • Click handlers and other event handlers.
  • Effects and custom hooks that depend on client-side React behavior.
  • Browser APIs such as window, localStorage, or geolocation.

Client Components are also pre-rendered into HTML on an initial load; they are not simply invisible until JavaScript runs. Hydration makes their browser-side interactions work.

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

Where should you put use client?

Place 'use client' at the top of the file that forms the narrowest useful client entry point, before its imports. It marks a boundary in the client module graph: imports and descendants under that entry point become part of the client bundle. It is not necessary to repeat the directive in every file used beneath that boundary. Putting it high in a large layout can unnecessarily expand the client-side JavaScript surface.

Props passed from a Server Component to a Client Component must be serializable by React. Keep server-only values and logic on the server, and pass the client component the data or rendered UI it needs. See the [Next.js use client reference](https://nextjs.org/docs/app/api-reference/directives/use-client).

Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

How to choose: a practical decision guide

Need Starting point Reason and qualification
Read from a database or private API Server Component Data access can stay near its source; credentials and query logic stay out of the client bundle. Authenticate and authorize requests.
Render mostly static or content-focused UI Server Component It adds no component JavaScript of its own to the client bundle and can be pre-rendered.
Handle clicks, input, local state, or effects Client Component These need client-side React capabilities. Keep the client boundary near the interaction.
Use browser storage, geolocation, or another browser API Client Component The browser API is not available in the server environment.
Show server-prepared content in a client modal or provider Compose both Pass rendered UI through a slot such as children; place providers deeply where possible to leave more of the tree outside the client boundary.
Show client-only or frequently polled data Consider client-side fetching The Next.js Backend for Frontend guide identifies these as cases where client-side fetching may be necessary.
Deploy as a static export Check requirements first A static export has no runtime server, so features that require the Next.js runtime are unsupported.

When both approaches could work, weigh browser-only capabilities, whether private data belongs near its source, the amount of JavaScript sent to the browser, latency and streaming needs, how often data changes, and whether the deployment provides a Next.js runtime.

Can a Server Component contain a Client Component?

Yes. A Server Component can render a Client Component as a child and pass serializable props to it. For example, a server-rendered page can supply data to an interactive filter or pass server-rendered content into a client modal’s children. The server parent remains a Server Component; rendering a client child does not require converting the whole parent tree into client code.

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

Providers can also be placed in Client Components and nested deeply in the tree. This can limit how much UI falls inside the client boundary while still making a provider available where it is needed.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Server data fetching, latency, and streaming

Server Components can use asynchronous I/O, including an ORM or database client. But server-side fetching does not mean every request runs in parallel or that rendering is automatically quick: sequential dependencies can remain sequential, and a slow awaited request can hold up the route until it completes.

For work that may take time, split the UI into smaller pieces and progressively send them—for example, with loading UI or React Suspense—so one slow result does not have to hold back every part of the page. The [Next.js data-fetching guide](https://nextjs.org/docs/app/getting-started/fetching-data) covers parallel and sequential fetching, streaming, and loading states.

Do not assume a universal fetch-cache default across Next.js versions. The current fetching guide says fetch requests are not cached by default and can block rendering until they complete; verify the behavior and configuration for the version your application uses. Dynamic APIs such as cookies and searchParams can also opt a route into dynamic rendering, so a Server Component does not by itself imply a static route. The [production checklist](https://nextjs.org/docs/app/guides/production-checklist) advises checking client-boundary placement to avoid unnecessary client bundle size.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

When not to use Server Components alone

  • The UI needs direct interaction: put state, event handlers, effects, or browser-dependent logic in a Client Component.
  • The data is client-only or needs frequent polling: client-side fetching may fit better, as noted in the [Backend for Frontend guide](https://nextjs.org/docs/app/guides/backend-for-frontend).
  • The deployment is a static export: first check whether the feature requires a running Next.js server. Static exports do not provide that runtime.
  • The server request is slow: consider whether the UI can be split and streamed, and whether its data dependencies need to run sequentially.

These are reasons to choose a different boundary or deployment approach—not a reason to mark an entire application as client-rendered by default.

What performance benefits should you expect?

Server Components can reduce the JavaScript needed for non-interactive UI and support streaming, but those are qualitative capabilities, not a promised speedup. The official guidance cited here does not establish a universal percentage improvement or benchmark. Actual results depend on the route, client boundary, data latency, rendering strategy, and deployment. Measure the application rather than treating “Server Component” as a performance guarantee.

Next.js documentation is version-sensitive. The App Router guide for Server and Client Components was updated March 16, 2026; the use client reference February 27, 2026; and the fetching guide March 25, 2026. Check the docs for the exact Next.js version you deploy, particularly for caching, rendering, and hosting behavior.

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.

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