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.