Was ist der Unterschied zwischen hashHistory
und context.router
? Beide routen URL und scheinen genauso zu arbeiten.hashHistory vs context.router
Antwort
hashHistory
ist eine Instanz eines history
Objekts, das vom Modul history erstellt wurde. Es funktioniert, indem der Hash einer URL geändert wird.
Im React Router muss ein <Router>
ein history
Objekt übergeben werden. Sie können ein eigenes Objekt erstellen und konfigurieren, aber zur Vereinfachung erstellen Sie auch hashHistory
und browserHistory
Objekte für Sie. Diese Objekte können überall in Ihrem Projekt importiert und verwendet werden, auch innerhalb Ihrer Komponenten. Der Nachteil besteht darin, dass Sie sie nicht selbst konfigurieren können. Wenn Sie eine der Verlaufskonfigurationsoptionen verwenden müssen, müssen Sie ein eigenes history
-Objekt erstellen.
import { hashHistory, Router } from 'react-router'
render((
<Router history={hashHistory}>...</Router>
), holder)
// or
import { Router } from 'react-router'
import { createHashHistory } from 'history'
const history = createHashHistory({ /* configuration options */ })
render((
<Router history={history}>...</Router>
), holder)
Innerhalb der gerenderten Komponenten durch die <Router>
, können Sie das context.router
Objekt zugreifen. Dazu gehören eine Reihe von Methoden aus Ihrem Objekt history
. Diese Methoden zu calden ist dasselbe wie das Importieren von hashHistory
in diese Datei und das Aufrufen der von Ihnen benötigten Navigationsfunktion.
const MyComponent = (props, context) => (
<div onClick={() => { context.router.push('/other-page') }}>Click Me!</div>
)
const MyComponent = (props) => (
<div onClick={() => { hashHistory.push('/other-page') }}>Click Me!</div>
)
Der Nachteil davon ist, dass Ihre Komponenten weniger tragbar sind. Während die Verwendung von context.router
das history
Objekt verwendet, das Sie an die <Router>
übergeben haben, müssten Sie die Komponente ändern, wenn Sie sich entschieden haben, von hashHistory
zu browserHistory
zu wechseln.
- 1. Tests reagieren Komponente (context.router - undefind)
- 2. ReactJs Schöne URL mit {hashHistory}
- 3. Navigieren Sie zu Route hashHistory mit
- 4. react-router hashHistory Push-Änderungen nur URL
- 5. Remove queryKey von hashHistory react-router-redux
- 6. React-Context.router kann nicht zur Umleitung der Seite
- 7. Warum ist mein context.router in meiner react-Komponente nicht definiert?
- 8. Konnte nicht auf context.router mit react-router-redux zugreifen
- 9. React-Router: Leite meine URL von hashHistory auf browserHistory um
- 10. React-Router im Browser. "HashHistory ist nicht definiert"
- 11. React Router: Verwenden von HashHistory und versuchen, location.hash zu erhalten
- 12. Gibt es eine Möglichkeit, auf einem Webpack-Dev-Server programmatisch von browserHistory auf hashHistory umzuschalten?
- 13. Was ist der Unterschied zwischen hashHistory und browserHistory im reaktiven Router?
- 14. Mit browserHistory in reagieren-Router statt hashHistory bricht mir das Laden der Seite
- 15. Warum können Sie auf einer Hash-Route auf hashHistory aktualisieren, aber nicht auf browserHistory ohne apiFallback?
- 16. , warum ich nicht die hashHistory Plugin haben, hat sich die URL der Hash-Suffixe
- 17. Klasse vs Paket vs Modul vs Komponente vs Container vs Service vs Plattform in Java Welt
- 18. Opa vs Dart vs Haxe vs Coffee
- 19. Akkumulieren vs falten vs reduzieren vs komprimieren
- 20. body.scrollTop vs documentElement.scrollTop vs window.pagYOffset vs window.scrollY
- 21. ACE vs Boost vs Poco vs wxWidgets
- 22. Inline vs __inline vs __inline__ vs __forceinline?
- 23. Metaphon vs Levenshtein vs Soundex vs Hamming
- 24. Standort vs GeoPoint vs 1E6 vs Aufladen
- 25. VS 2013 MSTest vs nUnit vs xUnit
- 26. ViewStub vs View.GONE vs Inflation vs ViewSwitcher
- 27. Exec vs ExecWait vs ExecShell vs nsExec :: Exec vs nsExec :: ExecToLog vs nsExec :: ExecToStack vs ExecDos vs ExeCmd
- 28. SpiderMonkey vs JavaScriptCore vs?
- 29. & vs * und | vs +
- 30. Bundler vs RVM vs Gems vs RubyGems vs Gemsets vs System Ruby