Routing ist eine Möglichkeit, Anwendungszustände zu organisieren und zu verwalten. Ein Routing-Framework in JavaScript hilft Ihnen, den Status der Anwendung zu ändern - möglicherweise von einem Admin-Bereich in einen anderen zu wechseln -, während Anwendungspersistenz beibehalten wird.
Wenn Sie aus einem Anwendungszustand navigieren möchten, z. /admin/users
, zu einem anderen, z.B. /admin/orders
können Sie einen normalen Link verwenden, wie Sie es vorschlagen. Aber dann werden Sie den Browser veranlassen, von einer HTML-Seite zu einer anderen zu navigieren. Dies ist offensichtlich die normale Art, in der man im Web navigiert. Aber in einer JavaScript-Anwendung ist das ziemlich ineffizient!
Wenn Sie eine komplexe In-Browser-Anwendung in JavaScript ausführen, muss diese App beim Start viel Arbeit leisten. Es registriert Event-Handler, lädt und führt eine Menge JavaScript aus und rendert manchmal die gesamte Seitenschnittstelle dynamisch (im Fall von ExtJS und einigen anderen Bibliotheken). Das ist eine Menge zusätzlicher Arbeit für den Browser, um eine JavaScript-Anwendung unter /admin/orders
einzurichten, die viel mit der unter /admin/users
gemeinsam ist. Ein effizienterer Weg besteht darin, dass die Verknüpfung ein Ereignis auslöst, das die Anwendung überwacht, und dass die Anwendung darauf reagiert, indem sie den Status der Anwendung ändert, indem sie die Benutzeransicht entfernt oder versteckt und sie durch eine Bestellansicht ersetzt. Routing ist eine Möglichkeit, diese verschiedenen Schnittstellen darzustellen, indem ein Token - normalerweise ein URL-Fragment wie /admin/users
- verwendet wird, um zu verfolgen, wo sich der Benutzer in Ihrer Schnittstelle befindet.
Dies ermöglicht der Anwendung, das dynamische Objektmodell zu verwalten, für das bereits Zeit verbraucht und Speicher zum Erstellen verwendet wurde. Die Benutzeroberfläche reagiert schneller, und wenn Sie die URL-Verlaufsverwaltung über einen Hashtag oder einen PushState verwenden, können Sie mit den Vor- und Zurück-Schaltflächen des Browsers in Ihrer App navigieren, ohne jedes Asset erneut auf die Website zu laden Seite jedes Mal und wischen Ihren Anwendungsstatus. Die URL-Verwaltung ermöglicht auch eine Tiefenverknüpfung mit einer Seite der Anwendung: Beim Laden überprüft der Router Ihrer App die empfangene Route-Zeichenfolge, markiert sie und lädt die Schnittstelle, die Sie in Ihrer Routingtabelle angegeben haben.
Routing ist nicht erforderlich, um Persistenz zu verwalten, aber es ist eine gute Möglichkeit, Ihre persistenten Zustände zu organisieren. Oft geht ein Routing-System Hand in Hand mit URL-History-Management, wie Davis.js. Aber es gibt auch Routing-Bibliotheken, die nicht mit dem URI in Konflikt geraten, die einen abstrakten Token-Status beibehalten, den Sie verwenden oder anzeigen können, wie Sie es für richtig halten, wie Crossroads.js.
Hervorragend formuliert. – orbfish