---
title: "entries:updated Hook · Unhead"
canonical_url: "https://unhead.unjs.io/docs/react/head/api/hooks/entries-updated"
last_updated: "2026-09-15T23:12:08.222Z"
meta:
  description: "Hook triggered when client-side head entries are added, patched, disposed, or invalidated."
  "og:description": "Hook triggered when client-side head entries are added, patched, disposed, or invalidated."
  "og:title": "entries:updated Hook · Unhead"
---

Home

`
Unhead on GitHub

Switch to ReactSwitch to TypeScriptSwitch to VueSwitch to SvelteSwitch to Solid.jsSwitch to AngularSwitch to Nuxt

**Hooks**

# **entries:updated Hook**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/head/7.api/hooks/02.entries-updated.md)

The `**entries:updated**` hook runs when a client head entry is added, patched, disposed, or invalidated. Unhead's client adapter uses this hook to trigger DOM rendering.

The server adapter does not emit this hook when entries change. On the server, rendering begins when you call `**head.render()**`.

## Hook Signature

```
export interface Hook {
  'entries:updated': (head: Unhead<any>) => HookResult
}

type HookResult = void | Promise<void>
```

### Parameters

| **Name** | **Type** | **Description** |
| --- | --- | --- |
| `**head**` | `**Unhead<any>**` | The Unhead instance whose entries changed |

Although the type permits a promise, the client update path does not await hook results. Keep this hook synchronous. `**ValidatePlugin**` warns when a hook returns a promise that Unhead will ignore.

## Usage Example

```
import { defineHeadPlugin } from '@unhead/react/plugins'

export const entryCountPlugin = defineHeadPlugin({
  key: 'entry-count',
  hooks: {
    'entries:updated': (head) => {
      console.log(`Active head entries: ${head.entries.size}`)
    }
  }
})
```

Entry inputs may still contain framework-specific reactive values at this point. Use a tag-resolution hook when you need normalized tag data.

[Edit this page](https://github.com/unjs/unhead/edit/main/docs/head/7.api/hooks/02.entries-updated.md)

[Markdown For LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/head/7.api/hooks/02.entries-updated.md)

**Did this page help you? **

[**useScript()** Load and share third-party scripts with lifecycle callbacks, loading triggers, API resolution, and optional call proxying.](https://unhead.unjs.io/docs/head/api/composables/use-script) [**entries:resolve** Hook for selecting or inspecting head entries before they are normalized into tags.](https://unhead.unjs.io/docs/head/api/hooks/entries-resolve)

**On this page **

- [Hook Signature](#hook-signature)
- [Usage Example](#usage-example)