Skip to main content
You are viewing Pre-Alpha documentation.
Vuetify0 Logo
Theme
Mode
Accessibility
Vuetify
Vuetify One

Sign in to Vuetify One

Access premium tools across the Vuetify ecosystem — Bin, Play, Studio, and more.

Not a subscriber? See what's included

useHydration

The useHydration composable provides SSR hydration state management, allowing you to detect when your application has been hydrated on the client side. This is essential for preventing hydration mismatches and controlling when browser-only features should activate.


Intermediate94% coverageMar 3, 2026

Installation

Install the Hydration plugin in your app’s entry point:

main.ts
import { createApp } from 'vue'
import { createHydrationPlugin } from '@vuetify/v0'
import App from './App.vue'

const app = createApp(App)

app.use(createHydrationPlugin())

app.mount('#app')

Usage

Once the plugin is installed, use the useHydration composable in any component. Destructure the properties for automatic ref unwrapping in templates:

vue
<script setup lang="ts">
  import { useHydration } from '@vuetify/v0'

  const { isHydrated, isSettled } = useHydration()

  // In script, access .value
  if (isHydrated.value) {
    console.log('Hydration complete')
  }
</script>

<template>
  <div>
    <!-- Destructured refs auto-unwrap in templates -->
    <p v-if="isHydrated">
      Application is hydrated - browser features available
    </p>
    <p v-else>
      Rendering on server or waiting for hydration
    </p>
  </div>
</template>

Architecture

useHydration uses the plugin pattern with a simple boolean state:

Hydration Plugin

Use controls to zoom and pan. Click outside or press Escape to close.

Hydration Plugin

Reactivity

All properties are Readonly<ShallowRef> and update when the root component mounts. Use .value in script; destructure for template auto-unwrapping.

PropertyTypeNotes
isHydratedShallowRef<boolean>True after root component mounts
isSettledShallowRef<boolean>True after next tick post-hydration

API Reference

The following API details are for the useHydration composable.

Functions

createHydration

() => E

Creates a new hydration instance.

createHydrationContext

<_E>(_options?: HydrationContextOptions | undefined) => ContextTrinity<_E>

createHydrationPlugin

(_options?: HydrationContextOptions | undefined) => Plugin

useHydration

<_E>(namespace?: string) => _E

Properties

isHydrated

Readonly<ShallowRef<boolean>>

True when root component has mounted (hydration complete)

isSettled

Readonly<ShallowRef<boolean>>

True after first tick post-hydration (safe for animations after state restoration)

Methods

hydrate

() => void

Mark hydration as complete

settle

() => void

Mark as settled (called automatically after nextTick post-hydration)

Was this page helpful?

© 2016-1970 Vuetify, LLC
Ctrl+/