Heim > Web-Frontend > js-Tutorial > Wie navigiere ich programmgesteuert in React Router v4, v5 und v6?

Wie navigiere ich programmgesteuert in React Router v4, v5 und v6?

Susan Sarandon
Freigeben: 2024-12-29 14:50:13
Original
1026 Leute haben es durchsucht

How to Programmatically Navigate in React Router v4, v5, and v6?

Programmgesteuertes Navigieren mit React Router

In React Router ermöglicht das Link-Element die native Navigation mithilfe von Hyperlinks. Für die programmatische Navigation über Links hinaus können Sie jedoch die folgenden Methoden nutzen.

React Router v6.6.1 und höher: useNavigate Hook

Verwenden Sie den useNavigate-Hook wie folgt:

import { useNavigate } from "react-router-dom";

function HomeButton() {
  const navigate = useNavigate();

  function handleClick() {
    navigate("/home");
  }

  return (
    <button type="button" onClick={handleClick}>
      Go home
    </button>
  );
}
Nach dem Login kopieren

React Router v5.1.0 und höher: useHistory Hook

Für funktionale Komponenten sollten Sie den useHistory-Hook in Betracht ziehen:

import { useHistory } from "react-router-dom";

function HomeButton() {
  const history = useHistory();

  function handleClick() {
    history.push("/home");
  }

  return (
    <button type="button" onClick={handleClick}>
      Go home
    </button>
  );
}
Nach dem Login kopieren

React Router v4: Multiple Approaches

  1. mitRouter-Komponente höherer Ordnung

Injizieren Sie die History-Objekt als Komponenten-Requisite:

import { withRouter } from "react-router-dom";

const Button = withRouter(({ history }) => (
  <button
    type="button"
    onClick={() => { history.push("/new-location") }}
  >
    Click Me!
  </button>
));
Nach dem Login kopieren
  1. Zusammensetzung und gerenderte Route

Rendern Sie eine weglose Route, die immer mit dem aktuellen Standort übereinstimmt, und stellen Sie sicher, dass dies der Fall ist die History-Methoden über die History prop:

import { Route } from "react-router-dom";

const Button = () => (
  <Route
    render={({ history }) => (
      <button
        type="button"
        onClick={() => { history.push("/new-location") }}
      >
        Click Me!
      </button>
    )}
  />
);
Nach dem Login kopieren
  1. Context

Zugriffsverlauf über die React Context API:

const Button = (props, context) => (
  <button
    type="button"
    onClick={() => {
      context.history === history.push === history.push;
      context.history.push('/new-location')
    }}
  >
    Click Me!
  </button>
);

Button.contextTypes = {
  history: PropTypes.shape({
    push: PropTypes.func.isRequired
  })
};
Nach dem Login kopieren

Der Einfachheit halber: Wir empfehlen die Verwendung der withRouter-Komponente höherer Ordnung oder das Rendern einer weglosen Route mit Komposition.

Das obige ist der detaillierte Inhalt vonWie navigiere ich programmgesteuert in React Router v4, v5 und v6?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage