createDataRouter
Create an isolated data router.
Compatibility
Import from @kasperrt/smolter/react @kasperrt/smolter/preact
Signature
function createDataRouter(
routes: readonly Route[],
options: RouterOptions = {},
): Router;Parameters
routes is an ordered readonly route table. options accepts url, browser, and hydrationData. browser defaults to false.
Returns
A Router with start, navigate, revalidate, submit, createFetcher, subscribe, getSnapshot, dispose, and routes.
Usage
Import this API from one of the entry points listed above. Keep server and build helpers in their dedicated subpaths.
const router = createDataRouter(routes, { browser: true });
await router.navigate("/tasks/1");
await router.revalidate();Behavior and edge cases
Creating a router does not immediately load data. RouterProvider calls start. Imperative consumers call start or navigate themselves. dispose aborts pending channels and removes the history listener. Prefer one browser router per app and one server router per request. Starting after a page operation has already begun preserves that operation and its snapshot. Independent fetcher work does not initialize the page router.