@nanostores/router
Nano Stores Router
A tiny URL router for Nano Stores state manager.
- Small. 765 bytes (minified and brotlied). Zero dependencies.
- Good TypeScript support.
- Framework agnostic. Can be used with React, Preact, Vue, Svelte, Angular, Solid.js, and vanilla JS.
Since Nano Stores promote moving logic to store, the router is a store, not a component in UI framework like React.
// stores/router.ts
import { createRouter } from '@nanostores/router'
export const $router = createRouter({
home: '/',
list: '/posts/:category',
post: '/posts/:category/:post'
})
Store in active mode listens for <a> clicks on document.body and Back button
in browser.
// components/layout.tsx
import { useStore } from '@nanostores/react'
import { $router } from '../stores/router.js'
export const Layout = () => {
const page = useStore($router)
if (!page) {
return <Error404 />
} else if (page.route === 'home') {
return <HomePage />
} else if (page.route === 'list') {
return <ListPage category={page.params.category} filters={page.search} />
} else if (page.route === 'post') {
return <PostPage post={page.params.post} />
}
}
Nano Stores Router is built by Evil Martians, an American design and engineering consultancy for developer tools, AI, and cybersecurity startups.
Docs
Read full docs here.
Related Packages
A smart store for Nano Stores state manager to sync with some media query
A store for Nano Stores state manager to keep data in localStorage
A store for Nano Stores state manager to keep data in sessionStorage
A tiny (152 bytes) state manager for React/Preact/Vue/Svelte with many atomic tr...
Version History
| Version | Released | License |
|---|---|---|
| 2.0.0 | MIT | |
| 1.1.0 | MIT | |
| 1.0.0 | MIT | |
| 0.16.1 | MIT | |
| 0.16.0 | MIT | |
| 0.15.1 | MIT | |
| 0.15.0 | MIT | |
| 0.14.2 | MIT | |
| 0.14.1 | MIT | |
| 0.14.0 | MIT | |
| 0.13.0 | MIT | |
| 0.12.1 | MIT | |
| 0.12.0 | MIT | |
| 0.11.0 | MIT | |
| 0.10.0 | MIT | |
| 0.9.1 | MIT | |
| 0.9.0 | MIT | |
| 0.8.3 | MIT | |
| 0.8.2 | MIT | |
| 0.8.1 | MIT | |
| 0.8.0 | MIT | |
| 0.7.0 | MIT | |
| 0.6.0 | MIT | |
| 0.5.0 | MIT | |
| 0.4.0 | MIT | |
| 0.3.1 | MIT | |
| 0.3.0 | MIT | |
| 0.2.2 | MIT | |
| 0.2.1 | MIT | |
| 0.2.0 | MIT |
Showing the latest 30 of 32. See every release on npm