Um programmgesteuert zwischen Routen zu navigieren, indem Sie in React Router useHistory
, müssen Sie zunächst den Haken aus der react-router-dom
Bibliothek importieren und dann in Ihrer Komponente verwenden. Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Verwendung von useHistory
für die Navigation:
useHistory
importieren : Beginnen Sie mit dem Importieren von useHistory
aus dem react-router-dom
Paket am Anfang Ihrer Komponentendatei.
<code class="javascript">import { useHistory } from 'react-router-dom';</code>
Initialisieren Sie useHistory
: Rufen Sie in Ihrer Funktionskomponente useHistory
auf, um das Verlaufsobjekt zu erhalten.
<code class="javascript">const history = useHistory();</code>
Navigieren Sie mit push
-Methode : Verwenden Sie die push
-Methode des Verlaufsobjekts, um zu einer neuen Route zu navigieren. Zum Beispiel, um zur /about
Seite zu navigieren, würden Sie:
<code class="javascript">history.push('/about');</code>
Ersetzen Sie den aktuellen Eintrag mit replace
: Wenn Sie zu einer neuen Route navigieren möchten, aber den aktuellen Eintrag im Verlaufsstapel ersetzen (so dass die Back -Taste nicht zur vorherigen Seite zurückkehrt), verwenden Sie stattdessen die replace
:
<code class="javascript">history.replace('/about');</code>
Gehen Sie zurück und nach vorne : Sie können auch goBack
, goForward
und go
verwenden, um zurück zu navigieren, vorwärts oder zu einem bestimmten Punkt im Verlaufsstapel.
<code class="javascript">history.goBack(); // Go back to the previous page history.goForward(); // Go forward to the next page history.go(-2); // Go back two entries in the history stack</code>
Mit der Verwendung useHistory
auf diese Weise können Sie die Navigation programmgesteuert in Ihrer React -Anwendung steuern.
Während useHistory
ein leistungsstarkes Werkzeug für die programmatische Navigation in React ist, müssen sich einige häufige Fallstricke bewusst sein:
useHistory
veraltet und durch useNavigate
ersetzt. Die Verwendung useHistory
in neueren Versionen von React Router führt zu Fehlern. Überprüfen Sie immer die Version von React Router, die Sie verwenden, und verwenden Sie den entsprechenden Haken.useHistory
für die Navigation verlassen, kann dies in der Routing -Struktur Ihrer Anwendung auf schlechte Designentscheidungen hinweisen. Versuchen Sie, nach Möglichkeit deklarative Routing zu verwenden, indem Sie Link
und NavLink
-Komponenten verwenden, um die Navigation einfach und aufrechterhalten zu halten.useHistory
für die Navigation und der Versuch, den Status durch diesen durch diese zu verwalten, kann zu Verwirrung führen. Verstehen Sie die Trennung zwischen Navigationshistorie und Staatsmanagement in Ihrer Bewerbung. Erwägen Sie für den Staat die staatliche Managementlösungen von React wie Kontext, Redux oder MOBX.replace
: Wenn Sie unnötig replace
, können Benutzer die Navigation zu einer zuvor besuchten Seite verwenden, um sie möglicherweise zu verwechseln. Verwenden Sie replace
nur, wenn Sie einen bestimmten Grund dazu haben. Das Bestehen zwischen den Routen, die mit useHistory
übertragen werden, können erreicht werden, indem ein Objekt mit einer state
Eigenschaft an die push
oder replace
weitergegeben wird. So können Sie es tun:
Passing State : Wenn Sie zu einer neuen Route navigieren, können Sie ein staatliches Objekt einfügen. Zum Beispiel:
<code class="javascript">const history = useHistory(); history.push({ pathname: '/profile', state: { id: 123, name: 'John Doe' } });</code>
Zugriff auf Status : In der auf der /profile
Route gerenderten Komponente können Sie useLocation
von react-router-dom
auf den Status zugreifen.
<code class="javascript">import { useLocation } from 'react-router-dom'; function Profile() { const location = useLocation(); const { id, name } = location.state || {}; return ( <div> <h1>Profile</h1> <p>ID: {id}</p> <p>Name: {name}</p> </div> ); }</code>
Durch die Ausführung dieser Schritte können Sie beim Navigieren zwischen Routen mit Verwendung useHistory
effektiv bestehen und nutzen.
useHistory
und useNavigate
sind beide Haken des React -Routers, die die programmatische Navigation ermöglichen. Sie gehören jedoch zu verschiedenen Versionen der Bibliothek und haben einige wichtige Unterschiede:
Versionskompatibilität :
useHistory
stammt aus dem React -Router V5 und wurde zugunsten des useNavigate
in React Router V6 veraltet.useNavigate
ist der aktuell empfohlene Haken für die programmatische Navigation in React Router V6.Syntax und Verwendung :
useHistory
verwenden Sie in der Regel Methoden wie push
, replace
, goBack
, goForward
und go
.useNavigate
gibt der Haken eine Funktion zurück ( navigate
), die Sie mit einem Pfad und Optionen aufrufen, um dieselben Ergebnisse zu erzielen. navigate('/about')
oder navigate('/about', { replace: true })
.Übergangszustand :
useHistory
verabschieden Sie ein Objekt, um durch eine state
Eigenschaft zu push
oder replace
.useNavigate
können Sie beim Aufrufen von navigate
ein state
als Option übergeben.<code class="javascript">// useHistory history.push({ pathname: '/profile', state: { id: 123 } }); // useNavigate navigate('/profile', { state: { id: 123 } });</code>
Relative Navigation :
useNavigate
unterstützt die relative Pfadnavigation und ermöglicht es Ihnen, zu Geschwister- oder übergeordneten Routen zu navigieren ..
In der Pfadfolge, die nicht im useHistory
unterstützt wird.Rück- und Vorwärtsnavigation :
useHistory
bietet Methoden wie goBack
und goForward
direkt.useNavigate
können Sie den gleichen Effekt erzielen, indem Sie navigate(-1)
für den Rücken anrufen und navigate(1)
.Das Verständnis dieser Unterschiede ist bei der Entscheidung, welcher Haken verwendet werden soll, abhängig von der Version von React Router, die Ihr Projekt verwendet.
Das obige ist der detaillierte Inhalt vonWie navigieren Sie programmgesteuert zwischen den Routen mit dem Gebrauchsgeschichte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!