wake-up-neo.com

Was ist der Unterschied zwischen hashHistory und browserHistory im reage Router

Ich habe schon ein bisschen gegoogelt, aber auf die folgende Frage habe ich keine klare Antwort gefunden: Was ist der Unterschied zwischen HashHistory und BrowserHistory im React-Router?

39
Ben Bieler

Der grundlegende Unterschied besteht darin, dass der Hash-Verlauf URLs wie: http://myurl.com/#page/another_page/another_page

Mit BrowserHistory erhalten Sie normale URLs (kein Hash): http://myurl.com/page/another_page/another_page

43
smcdrc

Ich denke nicht, dass die Frage nach Unterschieden im Format gefragt war, sondern eher aus technischen Gründen. Teilen Sie diese Antwort daher hier mit einem technischen Unterschied: https://stackoverflow.com/a/42157741/2445694

Grundsätzlich sendet der Browser die URL nicht nach dem #

Nehmen Sie an, dass eine Website Bereiche für Mitglieder und Admins eingeschränkt hat. Ein Benutzer navigiert zu/member und wird aufgefordert, sich anzumelden. Der Server weiß jedoch nicht, ob der Benutzer versucht hat, auf/admin oder/member zuzugreifen, bevor er auf die Anmeldeseite gelangt wissen, wohin umzuleiten. 

3
luanped

1) Das Speicherfeld des Browsers enthält mehr als nur die Standorte, die in unserer Anwendung besucht wurden. Wenn Sie Zugriff auf diese Liste zulassen, werden Informationen zum Browserverlauf eines Benutzers angezeigt, auf die Websites nicht zugreifen dürfen.

2) Der Browserverlauf erstellt Positionsobjekte, deren Pfadname der vollständige Pfadname der URL ist. Sie können jedoch einen Basisnamen für einen Verlauf angeben. In diesem Fall wird ein Teil des vollständigen Pfadnamens effektiv ignoriert.

3) Der Browserverlauf auf einem statischen Dateiserver verfügt über einen realen Speicherort auf unserem Server, von dem unser HTML-Code abgerufen wird, während der Hashverlauf den Hash-Abschnitt der URL zum Festlegen und Lesen der Speicherorte verwendet. 

4) Der Hash-Verlauf ist abhängig, da er alle Pfadinformationen im Hash einer URL speichert. 

1
MERLIN THOMAS

Erster Unterschied:

Sie verwenden verschiedene WEB-APIs. <HashRouter> verwendet und liest den Hash von der URL, <BrowserRouter> verwendet window.history WEB API.

Zweiter Unterschied:

<HashRouter> wird für statische einseitige Websites verwendet. Ideal für browserbasierte Projekte .<BrowserRouter> wird für dynamische Websites verwendet. Sollte verwendet werden, wenn Sie einen Server haben, der dynamische Anforderungen verarbeitet (weiß, wie auf eine mögliche URL zu reagieren ist).

1
Bojan Golubovic