router-light

1.0.2 • Public • Published

Router Light

Lightweight, routing library for any browser application

View Demo · Report Bug · Request Feature

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

(back to top)

Getting started

You can fork or download the plugin from GitHub, or you can install it through npm or bower.

$ npm install router-light

(back to top)

Usage

  1. Import the module:
import Router from 'router-light';
  1. Create instance of router object:
const router = new Router();
  1. 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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'feat: Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Note that this library uses commitlint and commit message must contain one of common types: conventional-changelog/commitlint

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Twitter @wwisniewski_

Blog wiktorwisniewski.dev

(back to top)

Readme

Keywords

Package Sidebar

Install

npm i router-light

Weekly Downloads

0

Version

1.0.2

License

MIT

Unpacked Size

28.2 kB

Total Files

10

Last publish

Collaborators

  • wisniewski94