router-light
v1.0.2
Published
lightweight, routing library for any application
Downloads
18
Readme
About The Project
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
Getting started
You can fork or download the plugin from GitHub, or you can install it through npm or bower.
$ npm install router-light
Usage
- 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"
}
Contributing
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
License
Distributed under the MIT License. See LICENSE
for more information.
Contact
Twitter @wwisniewski_
Blog wiktorwisniewski.dev