render()
hookThe render()
hook defines how a page is rendered to HTML.
// /**/*.page.server.js (usually /renderer/_default.page.server.js)
// Environment: Node.js
import { escapeInject, dangerouslySkipEscape } from 'vite-plugin-ssr'
import { renderToHtml, createElement } from 'some-ui-framework'
export { render }
async function render(pageContext){
const { Page, pageProps } = pageContext
const pageHtml = await renderToHtml(createElement(Page, pageProps))
const documentHtml = escapeInject`<!DOCTYPE html>
<html>
<head>
<title>My SSR App</title>
</head>
<body>
<div id="page-root">${dangerouslySkipEscape(pageHtml)}</div>
</body>
</html>`
return {
documentHtml,
pageContext: {
// We can add some `pageContext` here
}
}
}
pageContext.Page
is theexport { Page }
of the page's.page.js
file that is being rendered.