Hooks
entries:updated Hook
 On this page 
The entries:updated hook is called whenever the collection of head entries is modified, either by adding new entries, updating existing ones, or removing entries. This hook provides a way to react to changes in the application's head content.
Hook Signature
export interface Hook {
  'entries:updated': (ctx: Unhead<any>) => HookResult
}
Parameters
| Name | Type | Description | 
|---|---|---|
ctx | Unhead<any> | The Unhead instance containing the updated entries | 
Returns
HookResult which is either void or Promise<void>
Usage Example
import { createHead } from 'unhead'
const head = createHead({
  hooks: {
    'entries:updated': (head) => {
      // Log when entries are updated
      console.log('Head entries have been updated!')
      console.log(`Current entry count: ${head.headEntries().length}`)
    }
  }
})
Use Cases
Tracking Head Changes
You can use this hook to track and log changes to head entries throughout your application lifecycle:
import { defineHeadPlugin } from 'unhead'
export const headChangeTrackingPlugin = defineHeadPlugin({
  hooks: {
    'entries:updated': (head) => {
      // Get current timestamp
      const timestamp = new Date().toISOString()
      // Log the updated state
      console.log(`[${timestamp}] Head entries updated:`, head.headEntries().map(entry => ({
        id: entry._i,
        input: entry.input
      })))
    }
  }
})
Triggering Side Effects
The hook can be used to trigger side effects when head entries change:
import { defineHeadPlugin } from 'unhead'
export const headChangeReactionPlugin = defineHeadPlugin({
  hooks: {
    'entries:updated': (head) => {
      // Check if title has changed
      const titleEntry = head.headEntries().find(entry =>
        entry.input && typeof entry.input === 'object' && 'title' in entry.input
      )
      if (titleEntry) {
        // Perform side effect when title changes
        notifyTitleChange(titleEntry.input.title)
      }
    }
  }
})
function notifyTitleChange(title) {
  // Custom notification logic
  console.log(`Title changed to: ${title}`)
}
 Did this page help you?