0.0.9 • Published 4 years ago
pure-router v0.0.9
pure-router
Pure JavaScript Router
CDN
<script src="http://cdn.sencort.com/js/pure-router/pure-router.min.js"></script>
<script>
let router = pureRouter();
</script>
Package
Installation:
npm install pure-router
Creating router:
const pureRouter = require('pure-router');
let router = pureRouter();
Register handlers:
All handlers receives single plain object argument with following properties:
url
: Requested URL string.path
: Router template URL string.params
: Object containing all parameters specified inpath
property.hash
: URL hash string.query
: Object with all parameters specified in URL after?
sign.
// Exact url
router.on('/contacts/', ({ url, path, params, hash, query }) => {
});
// Number parameter
router.on('/offers/#id/', ({ url, path, params, hash, query }) => {
});
// String parameter
router.on('/user/$username/', ({ url, path, params, hash, query }) => {
});
// Any type of parameter. Try to parse number, else string.
router.on('/partners/:partner/', ({ url, path, params, hash, query }) => {
});
Example:
router.on('/partners/#id/', (route) => {
route === {
url: '/partners/14/?name=John',
path: '/partners/:partner',
params: { partner: 14 },
hash: 'description',
query: { name: 'John' },
}
});
router.go('/partners/14/?name=John#description');
API
Route
const pureRouter = require('pure-router');
let route = new pureRouter.Route('/user/$username/#id/:person/', handler);
route.test('/user/example/45/66/?name=example#description');
// { username: 'example', id: 45, person: 66 }
route.getParams(url);
// { name: 'example' }
route.getQuery(url);
// 'description'
route.getHash(url);
// { url, path, params, query, hash }
route.getData('/user/example/45/66/?name=example#description');
Router
const pureRouter = require('pure-router');
let router = new pureRouter.Router();
// { url, path, params, query, hash };
router.on('/user/$username/#id/:person/', handler);
route.go('/user/example/45/66/?name=example#description');