diff --git a/vike-solid/renderer/+onRenderClient.tsx b/vike-solid/renderer/+onRenderClient.tsx index 570d716..2dbe8b4 100644 --- a/vike-solid/renderer/+onRenderClient.tsx +++ b/vike-solid/renderer/+onRenderClient.tsx @@ -25,17 +25,23 @@ const onRenderClient: OnRenderClientAsync = async ( const container = document.getElementById("page-view")!; if (container.innerHTML !== "" && pageContext.isHydration) { + // Hydration dispose = hydrate(() => getPageElement(pageContextStore)!, container); } else { + // First rendering dispose = render(() => getPageElement(pageContextStore)!, container); } rendered = true; } else { + // Client routing + // See https://vike.dev/server-routing-vs-client-routing + setPageContext(reconcile(pageContext)); - } - const title = getTitle(pageContext); - if (title !== null) { - document.title = title; + // Get the page's `title` config value, which may be different from the + // previous page. It can even be null, in which case we should unset the + // document title. + const title = getTitle(pageContext); + document.title = title || ""; } -} +};