onAfterRenderHtml()
hook
Environment: server.
Implemented by: vike-react
/vike-vue
.
You need
vike-react
/vike-vue
to be able to useonAfterRenderHtml()
. If you don't usevike-react
/vike-vue
then see Withoutvike-{react,vue,solid}
.
Hook called right after the the +Page
component is rendered to HTML.
Lifecycle
It's called upon rendering the first page the user visits. It isn't called upon page navigation (since pages aren't rendered to HTML upon page navigation).
It's called regardless of whether SSR is disabled. (The first page the user visits is always rendered to HTML: when SSR is disabled it's just an HTML shell that doesn't contain the content of the page.)
For pre-rendered pages it's called at build-time. (Since the HTML of pre-rendered pages are generated at build-time.)
Conditional
You can apply onAfterRenderHtml()
only upon certain conditions, for example you can apply it only if SSR is enabled.
pageContext.pageHtml{String,Stream}
To access the page's HTML string/stream:
Use cases
The onAfterRenderHtml()
and onBeforeRenderHtml()
hooks are typically used for integrating tools.
For example, onAfterRenderHtml()
is often used for dehydrating state management libraries, and onBeforeRenderHtml()
can be used for collecting the page's CSS defined by a CSS-in-JS library (#141 - CSS-in-JS with SSR).
Without vike-{react,vue,solid}
If you don't use a UI framework Vike extension vike-react
/vike-vue
/vike-solid
, then you don't need onAfterRenderHtml()
nor onBeforeRenderHtml()
since you already have full control over HTML rendering at your onRenderHtml()
hook.