solid-router
Version:
A declarative router for solid-js
75 lines (59 loc) • 1.73 kB
Markdown
[](https://travis-ci.com/mduclehcm/solid-router)
[]('https://www.npmjs.com/package/solid-router')

A declarative router for [solid-js](https://github.com/ryansolid/solid/tree/master/packages/solid)
```bash
npm install solid-router
```
```jsx
import { render } from 'solid-js/dom';
import { ContextProvider } from 'solid-router';
render(
() => (
<ContextProvider>
<div>
<Router fallback={<p>404 Page</p>}>
<Route path="/">
<p>HomePage</p>
</Route>
<Route path="/about">
<p>AboutPage</p>
</Route>
</Router>
</div>
</ContextProvider>
),
document.getElementById('root'),
);
```
```js
import http from 'http';
import { renderToString } from 'solid-js/dom';
import { ContextProvider } from 'solid-router/server';
import App from './app';
const server = http.createServer(async (req, res) => {
res.write(
await renderToString(() => (
<ContextProvider
options={{
initialEntries: [req.url],
}}
>
<App />
</ContextProvider>
)),
);
res.end();
});
server.listen(8080, () => {
console.log('application running at port 8080');
});
```
- Simple routing [codesanbox](https://codesandbox.io/s/solid-router-sqnyy?fontsize=14&hidenavigation=1&theme=dark)
- Route params [codesanbox](https://codesandbox.io/s/solid-router-simple-router-u4003?fontsize=14&hidenavigation=1&theme=dark)