ZuploZuplo
LoginStart for Free
  • Documentation
  • API Reference
Getting Started
Concepts
API Management
AI Gateway
MCP Gateway
MCP Server
Developer Portal
    Overview
    Getting Started
      Updating VersionsNode Modules & CustomizationZuplo Branding
      Configuration
      Writing
      OpenAPI
      Authentication
      Integrations
      Guides
      Extending
      Components
        General
        Documentation
        Form
        Utility
          ClientOnlyHeadSlot
    Development
    Deploying & Source Control
    Analytics
    Observability
    Networking & Infrastructure
    Account Management
    Programming API
    Build with AI
    Zuplo CLI
    Migration Guides
    Platform LimitsVersion Support PolicySecuritySupportTrust & ComplianceChangelog
    powered by Zuplo
    Utility

    ClientOnly

    A component that only renders its children on the client-side, preventing hydration mismatches between server and client rendering.

    Import

    Code
    import { ClientOnly } from "zudoku/components";

    Props

    Code
    type ClientOnlyProps = { children: ReactNode; fallback?: ReactNode; };

    Usage

    Basic Usage

    Code
    <ClientOnly> <SomeClientOnlyComponent /> </ClientOnly>

    With Fallback

    Code
    <ClientOnly fallback={<div>Loading...</div>}> <InteractiveWidget /> </ClientOnly>

    Examples

    Code
    function MyComponent() { return ( <div> <h1>This renders on both server and client</h1> <ClientOnly fallback={<Spinner />}> <ComponentThatUsesWindowObject /> </ClientOnly> </div> ); }

    Use Cases

    • Browser APIs: Components that use window, document, or other browser-only APIs
    • Third-party Libraries: Libraries that don't support SSR
    • Theme Switches: Preventing flash of incorrect theme
    • Interactive Widgets: Components with complex client-side state
    • Conditional Features: Features that should only appear on the client

    Notes

    Use ClientOnly sparingly as it can impact SEO and initial page load performance. Only use it when necessary for components that cannot be server-rendered.

    Always provide a meaningful fallback that matches the approximate size and layout of your client-only component to prevent layout shifts.

    Edit this page
    Last modified on October 1, 2026
    LabelHead
    On this page
    • Import
    • Props
    • Usage
      • Basic Usage
      • With Fallback
    • Examples
    • Use Cases
    • Notes
    React
    TypeScript
    React
    React
    React