Edit this page

onCreatePageContext() hook

Environment: server, client
Cumulative: true
Global: true

Hook called whenever a pageContext object is created.

It's typically used for initializing pageContext properties:

// pages/+onCreatePageContext.ts
// Environment: server & client
 
import type { PageContext } from 'vike/types'
 
export async function onCreatePageContext(pageContext: PageContext) {
  pageContext.someInstance = new Instance({ some: 'initial-value' })
}

You can define +onCreatePageContext.server.js or +onCreatePageContext.client.js to have onCreatePageContext() be called only on the server- or client-side. You can also define both for defining two different onCreatePageContext() hooks. See Guides > .server.js / .client.js / .shared.js.

A common use case is to initialize a store:

// pages/+onCreatePageContext.server.ts
// Environment: server
 
import { Store } from 'some-state-management-library'
import type { PageContextServer } from 'vike/types'
 
export async function onCreatePageContext(pageContext: PageContextServer) {
  pageContext.store = new Store()
}