Lightweight, routing library for any browser application
View Demo
·
Report Bug
·
Request Feature
This is very simple and lightweight routing library intended mostly to be used in vanilla js apps. You can read how it's made here:
How to create a router for custom SPA App
You can fork or download the plugin from GitHub, or you can install it through npm or bower.
$ npm install router-light
- Import the module:
import Router from 'router-light';
- Create instance of router object:
const router = new Router();
- Register paths and callbacks:
router.get('/my-custom-page', () => {
document.body.innerText = 'Hello World';
})
Callback function is called when the url matches any of registered paths. In other words, the application “listens” for requests that match the specified route(s) and when it detects a match, it calls the specified callback function.
Route paths can be patterns. For example:
router.get('/test/:label1/*/*/*/:label2', (options) => {
console.log(options);
});
If the url is /test/custom_label/arg1/arg2/843/custom_label2
then the matching pattern is /test/:label1/*/*/*/:label2
and options will become object with given properties:
{
"0": "arg1",
"1": "arg2",
"2": "843",
"label1": "custom_label",
"label2": "custom_label2"
}
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'feat: Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Note that this library uses commitlint and commit message must contain one of common types: conventional-changelog/commitlint
Distributed under the MIT License. See LICENSE
for more information.
Twitter @wwisniewski_
Blog wiktorwisniewski.dev