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()
}