Driver FixRecommendedSound, Wi-Fi or graphics acting up? Check drivers firstFind missing or outdated drivers fast.Check DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
World desk3 min

React 19.3’s `browser()` API: How to Render UI Only in the Browser

React 19.3’s browser() API lets a Client Component defer rendering until the browser, with a Suspense fallback on the server. Here’s how to use it and what it requires.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

React 19.3 adds browser(), an explicit way to defer a component that cannot produce meaningful server-rendered UI until it runs in the browser. Import it from react-dom and call use(browser()) inside a <Suspense> boundary in a Client Component. On the server, React renders the boundary’s fallback; in the browser, the component renders normally after hydration. (React 19.3 announcement; browser() API reference)

What does React 19.3’s browser() API do?

Server rendering normally lets React send useful initial HTML to the browser, where React then hydrates that markup to attach interactivity. For hydration to work as intended, the initial server and client output should match. But some UI depends on information that is only available in the browser, such as a value in localStorage or the user’s local time zone. In those cases, producing meaningful server HTML may not be possible.

As an Amazon Associate I earn from qualifying purchases.

browser() gives this browser-only rendering pattern an explicit API. The React Team described it as a first-class way to opt a component out of server rendering when it cannot provide meaningful server UI. It is a React DOM rendering behavior, not a general instruction to skip server rendering for ordinary components.

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.

How to use browser()

Call use(browser()) from a Client Component and place that component under a Suspense boundary that is rendered on the server. The fallback is the server-rendered representation; when React runs in the browser, the call does not suspend and the component can render.

import { Suspense, use } from 'react';
import { browser } from 'react-dom';

function LocalTime() {
  use(browser());

  return <p>Your local time zone: {Intl.DateTimeFormat().resolvedOptions().timeZone}</p>;
}

export default function Page() {
  return (
    <Suspense fallback={<p>Loading your local time zone…</p>}>
      <LocalTime />
    </Suspense>
  );
}

This illustrates the API shape; adapt the surrounding component structure to your application. The important parts are that browser() is passed to React’s use function, the call is made in a Client Component, and the server render has a Suspense boundary to show while the browser-only component is deferred.

Requirements and behavior to account for

The call must be inside a server-rendered Suspense boundary

During server rendering, use(browser()) suspends to the nearest Suspense boundary. React emits that boundary’s fallback. Without a suitable boundary, the server render fails. Choose fallback content that communicates what the user can expect while the browser-only UI is unavailable; it does not need to be a generic loading message.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option

Use it in a Client Component

The API must be called from a Client Component, not a Server Component. In frameworks that use Server Components by default, add 'use client' to the relevant module or place the call in a child Client Component. The component still needs to be within a Suspense boundary for server rendering.

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

Calling browser() alone does not defer rendering

The browser-only behavior comes from passing its return value to use. Importing or calling browser() without using it this way does not mark a component as browser-only.

The API accepts an optional reason

The browser() API reference documents an optional reason string or function. That reason becomes the cause of the error passed to the server renderer’s onBrowserBailout callback. If the reason is a function, the server renderer calls it when it encounters the value; the function is not called in the browser.

When to use it—and when not to

Use browser() when a component genuinely cannot provide meaningful server output because it needs browser-only information or capabilities. A local-time-zone display is one example; content that depends on a locally stored preference may be another. In each case, consider whether a useful server-rendered version or fallback can be shown first.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

React presents this API as an alternative to patterns that wait for an effect to set mounted state or check typeof window !== 'undefined'. It is intended for the uncommon case where meaningful server UI cannot be produced, not as a blanket way to avoid server rendering. For other rendering choices, assess whether server HTML is useful, what the fallback should communicate, whether the component is in the correct Client Component boundary, and whether the server renderer should report the deferral.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Observing a server-side browser bailout

React 19.3 lists onBrowserBailout as a way for a server renderer to observe when a subtree defers to the browser. React’s API reference distinguishes this callback from the server renderer’s onError and from hydrateRoot’s onRecoverableError; those callbacks do not replace onBrowserBailout for this specific bailout. See the browser() API reference for the callback details.

What else arrived in React 19.3?

The React Team announced React 19.3 on September 9, 2026. The announcement also highlights stable View Transitions and Fragment Refs, Trusted Types support, and direct Context rendering from a 'use client' module in Server Components. These are separate release changes; browser() specifically concerns React DOM rendering.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.