The route driver provides access to the pathname of the route in a browser.
The route module provides a router view that accepts a route and a map of routes to views and nested routes, rendering the view that matches the route while forwarding any data to the view.
const p = Moon.view.m.p; const router = Moon.route.router; const view = route => data => <p> The route is {route}. Provided data: {JSON.stringify(data)}. </p>; const routes = { "/": [view("/"), {}], "/moon": [view("/moon"), { "/titan": [view("/moon/titan", {})], "/europa": [view("/moon/europa", {})], "/*": [view("/moon/*"), {}] }], "/*": [view("/*"), {}] }; Moon.use({ view: Moon.view.driver("#root") }); Moon.run(() => ({ // Use a hardcoded route. This can come from the route driver. view: <router route="/moon/titan" routes=routes foo="bar"/> }));
The route driver provides the current pathname.
Moon.use({ route: Moon.route.driver }); Moon.run(({ route }) => { console.log(route); return {}; });
The route driver accepts a new route that will be appended to the current history using history.pushState
.
Moon.use({
route: Moon.route.driver
});
Moon.run(() => ({
route: "/test"
}));