create-vanjs
Version:
🍦 Quick tool for scaffolding your first VanJS project
30 lines (24 loc) • 1.02 kB
JavaScript
export { onRenderClient };
import van from "vanjs-core";
import { Layout } from "../components/Layout";
import { hydrate } from "@vanjs/client";
import { Header } from "../components/Header";
// import { Footer } from "../components/Footer";
import { setPageContext } from "./usePageContext";
import { applyMeta } from "../util/applyMeta";
const onRenderClient = async (pageContext) => {
const { Page } = pageContext;
const main = document.getElementById("main");
const header = document.getElementById("app-header");
// only hydrate if you have interactive/dynamic elements in Footer
// const footer = document.getElementById("app-footer");
const App = () => {
setPageContext(pageContext);
return Layout({ Page, pageContext });
};
van.hydrate(main, (dom) => hydrate(dom, App()));
van.hydrate(header, (dom) => hydrate(dom, Header()));
// only hydrate if you have interactive/dynamic elements in Footer
// van.hydrate(footer, (dom) => hydrate(dom, Footer()));
applyMeta(pageContext);
};