Router · hash
This whole site is a router demo — the sidebar links set the URL hash and the page swaps with zero re-render. Try these:
Usage
import { Router, Link, navigate, html } from "./index.js";
const routes = [
{ path: "/", component: () => html`<p>Home</p>` },
{ path: "/about", component: () => html`<p>About</p>` },
{ path: "/users/:id", component: (p) => html`<p>User #${() => p.params().id}</p>` },
];
html`
${Link({ to: "/about", children: "About", activeClass: "active" })}
${Router(routes, () => html`<p>404</p>`)}
`
// navigate("/users/7") works imperatively too.