Hooks
List of built-in hooks. (You can create your own.)
See also: API > Settings.
Basics
data()
: server (configurable) Called before the page is rendered, for fetching data.guard()
: server (configurable) Protect pages from unprivileged access.onHydrationEnd()
: client Called after the page is hydrated.onPageTransitionStart()
: client Called upon page navigation, before the new page starts rendering.onPageTransitionEnd()
: client Called upon page navigation, after the new page has finished rendering.onCreatePageContext()
: server & client Hook called when apageContext
object is created.onCreateGlobalContext()
: server & client Hook called when theglobalContext
object is created.
Pre-rendering
onBeforePrerenderStart()
: server Called before the whole Pre-rendering process starts.onPrerenderStart()
: server Global hook called when Pre-rendering starts.
vike-vue
onCreateApp()
: server & clientvike-vue
Called after creating Vue'sapp
instance.
Advanced
Most users don't need to know about these hooks.
onData()
: server & client Called as soon aspageContext.data
is available.onBeforeRender()
: server (configurable) Called before the page is rendered, lower-level and usually for advanced integrations with data fetching tools.onRenderHtml()
: server Called when a page is rendered to HTML on the server-side.onRenderClient()
: client Called when a page is rendered on the client-side.onBeforeRoute()
: server & client Called before the URL is routed to a page.onBeforeRenderClient()
: client Called at the beginning ofonRenderClient()
.onAfterRenderClient()
: client Called at the end ofonRenderClient()
.onBeforeRenderHtml()
: server Called at the beginning ofonRenderHtml()
.onAfterRenderHtml()
: server Called at the end ofonRenderHtml()
.
Upcoming
Potentially upcoming hooks:
- Feature Request #1979 — New hook
onRenderHtmlEnd()
- Feature Request #1438 — New hook
onLog()
- Feature Request #1525 — New hook
onRenderContent()
: generate non-HTML files with arbitrary content
Lifecycle
The order in which hooks are called upon rendering a page. (The hook flow.)
Server start
- server
onCreateGlobalContext()
First render
- server
renderPage()
- server
onBeforeRoute()
- server Routing
- server
onCreatePageContext()
- server
guard()
- server
data()
- server
onData()
- server
onBeforeRender()
- server
onRenderHtml()
- client
onCreateGlobalContext()
- client
onCreatePageContext()
- client
onRenderClient()
- client
onHydrationEnd()
Client-side navigation
- client
onPageTransitionStart()
- client
onBeforeRoute()
- client Routing
- client
onCreatePageContext()
- server
renderPage()
- server
onBeforeRoute()
- server Routing
- server
onCreatePageContext()
- server
guard()
- server
data()
- server
onBeforeRender()
- client
onData()
- client
onRenderClient()
- client
onPageTransitionEnd()
Data hook environment
Select the following:
Server-only (default)
if you use+data.js
or+onBeforeRender.js
. (They run only on the server.)Client-only
if you use+data.client.js
or+onBeforeRender.client.js
. (They run only on the client.)Server & client
if you use+data.shared.js
or+onBeforeRender.shared.js
. (They run on both the server and the client.)
Routing executes the Route Function of all your pages.
See also: