# hydrate

```ts
function hydrate(
   client, 
   dehydratedState, 
   options?): void;
```

Defined in: [packages/query-core/src/hydration.ts:264](https://github.com/TanStack/query/blob/main/packages/query-core/src/hydration.ts#L264)

Restores a `DehydratedState` (as produced by `dehydrate`) into a `QueryClient`'s cache, typically to seed the
client with data already fetched on the server. `mutations` and `queries` are each optional on `dehydratedState`.
Queries not yet in the cache are built from the dehydrated snapshot; queries that already exist are only updated
when the dehydrated data is newer than what's already cached. Newly built queries have their `fetchStatus` reset
to `'idle'` so they don't hydrate stuck in a fetching state. If a dehydrated query still had an in-flight
promise, it is resumed via `query.fetch()` (reusing that promise as `initialPromise`) rather than re-invoking
`queryFn`.

## Parameters

### client

[`QueryClient`](../classes/QueryClient.md)

### dehydratedState

`Partial`\<[`DehydratedState`](../interfaces/DehydratedState.md)\>

### options?

[`HydrateOptions`](../interfaces/HydrateOptions.md)

## Returns

`void`

## Example

```ts
// dehydratedState was produced by `dehydrate` on the server
// and sent to the client, e.g. embedded in server-rendered markup.
const queryClient = new QueryClient()

hydrate(queryClient, dehydratedState)
```
