@react-nano/router
A simple, lightweight react router using hooks, written in TypeScript.
Why Use @react-nano/router?
- Very lightweight (see the badges above for the latest size).
- Flexible and dead simple to use.
- Uses the browsers history API (no bulky polyfill).
- Does not force a matching algorithm on you. It's up to you!
- Comes with a simple (one-liner) matching algorithm built-in for simple use-cases.
- Written with hooks in TypeScript
- Only has one peer dependency: React 17.0.0 or higher.
- Liberal license: zlib/libpng
Example
A small example might look like this:
import { Router } from "@react-nano/router";
export const App = () => (
<Router>
<Switch>
<Route path="/news" component={News} />
<Route path="/fakenews" component={FakeNews} />
{/* use "(.*)" instead of "*" if you use path-to-regexp */}
<Route path="*" component={Otherwise} />
</Switch>
</Router>
);
How to Use
Check out the documentation
Report Issues
Something not working quite as expected? Do you need a feature that has not been implemented yet? Check the issue tracker and add a new one if your problem is not already listed. Please try to provide a detailed description of your problem, including the steps to reproduce it.
Contribute
Awesome! If you would like to contribute with a new feature or submit a bugfix, fork this repo and send a pull request. Please, make sure all the unit tests are passing before submitting and add new ones in case you introduced new features.
License
@react-nano has been released under the zlib/libpng license, meaning you can use it free of charge, without strings attached in commercial and non-commercial projects. Credits are appreciated but not mandatory.