Routeur
Un routeur permet d'établir une navigation basée sur les URL de l'application.
Dans une Single Page Application, il y a deux options :
mode hashbang.
mode HTML 5.
Mode hashbang
Les chemins utilisent les ancres HTML (caractère #).
http://www.monsite.fr/#page1
http://www.monsite.fr/#page2
Mode HTML 5
Les chemins sont classiques (sans #) :
http://www.monsite.fr/page1
http://www.monsite.fr/page2
Cela est possible par le fait que le navigateur autorise la création d'une nouvelle entrée dans son historique sans effectuer de requête vers le serveur.
var stateObj = { foo: "bar" }; // donnée associée à l'état
history.pushState(stateObj, "page 2", "bar.html"); // alimenter l'historique
Pour en savoir plus : https://developer.mozilla.org/fr/docs/Web/Guide/DOM/Manipuler_historique_du_navigateur.