JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 28
  • Score
    100M100P100Q58190F
  • License MIT

A url based router based on highway

Package Exports

  • url-highway

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (url-highway) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

url-highway

A url based router. It's based on Highway, which is a simple and extensible router, and adds it url support. The router can listen to hash changes to navigate to a route, or update the hash when navigating to a new route.

Installation

npm install url-highway

How to use

Require and initialize a url based router:

var Highway = require("url-highway");

var highway = new Highway();

Starting/stopping the router to allow it to watch for hash changes in the url

urlHighway.start();
urlHighway.stop();

Let's define routes:

highway.set("route", function onRouteCalled(param1) {
    // Do something when navigating to "route".
}, /* scope, optional */);

highway.set("anotherRoute", function onAnotherRouteCalled(param1, param2, param3) {
    // Do something when navigating to anotherRoute
}, /* optional scope*/);

By default, when navigating to a route, url highway will update the hash:

// Navigating to "route", giving 66 as a parameter. As many parameters as necessary can be given to navigate.
highway.navigate("route", 66);

//Then url highway updates the hash:
window.location.hash; // #route/66

When navigating to a route with several parameters:

highway.navigate("anotherRoute", "interstate", 66, "D.C.");

// Then the hash will be:
window.location.hash; // #anotherRoute/interstate/66/D.C.

Also, when the hash is updated (programmatically or from the address bar), to #route/127/MI

window.location.hash = "#route/127/MI";

// Will call navigate:
highway.navigate("route", "127", "MI");

We can also get the last route

// returns something like: #route/127/MI
highway.getLastRoute();


// We can use parse on it, returns ["route", "127", "MI"]
highway.parse("#route/127/MI");

Highway's other features are available too:

Removing a route:

var handle = highway.set("route", ...);

highway.unset(handle);

Navigating in the history:

highway.back();
highway.forward();

highway.go(-2);

CHANGELOG

###1.0.0 - 12 MAR 2016

  • Breaking change: destroy() renamed to stop()
  • Update unit tests

###0.0.5 - 21 FEB 2016

  • It's now possible to register routes without giving a callback.
  • Improved API for getting previous routes

LICENSE

MIT