pubload/renderer/+onRenderClient.ts

22 lines
767 B
TypeScript

// https://vike.dev/onRenderClient
export { onRenderClient }
import { createVueApp } from './createVueApp'
import { getPageTitle } from './getPageTitle'
import type { OnRenderClientAsync } from 'vike/types'
let app: ReturnType<typeof createVueApp>
const onRenderClient: OnRenderClientAsync = async (pageContext): ReturnType<OnRenderClientAsync> => {
// This onRenderClient() hook only supports SSR, see https://vike.dev/render-modes for how to modify onRenderClient()
// to support SPA
if (!pageContext.Page) throw new Error('My onRenderClient() hook expects pageContext.Page to be defined')
if (!app) {
app = createVueApp(pageContext)
app.mount('#app')
} else {
app.changePage(pageContext)
}
document.title = getPageTitle(pageContext)
}