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

Wie navigiere ich programmgesteuert in React Router v2, v3 und v4?

Barbara Streisand
Freigeben: 2024-12-23 18:40:15
Original
387 Leute haben es durchsucht

How to Programmatically Navigate in React Router v2, v3, and v4?

Programmgesteuertes Navigieren mit React-Router

In vielen React-Anwendungen kann es Szenarien geben, in denen Sie basierend auf bestimmten Bedingungen, wie z. B. der Benutzerauthentifizierung, programmgesteuert zwischen Routen navigieren müssen . So können Sie dies mit React-Router erreichen.

React-Router v4

In React-Router V4 können Sie die withRouter Higher-Order Component (HOC) verwenden, um auf Verlaufs-Requisiten zuzugreifen. einschließlich push() zum programmgesteuerten Ändern von Routen. So können Sie dies in Ihrem Beispiel implementieren:

import { withRouter } from 'react-router';

class App extends React.Component {
  componentDidMount() {
    const isLoggedIn = // Get isLoggedIn from localStorage or API call

    if (isLoggedIn) {
      this.props.history.push('/home');
    }
  }

  render() {
    // Return login component
    return <Login />;
  }
}

export default withRouter(App);
Nach dem Login kopieren

React-Router v2 oder V3

In früheren Versionen von React-Router (V2 und V3) können Sie den Kontext zum Ändern verwenden Routen, wie im folgenden Beispiel gezeigt:

import React, { Component } from 'react';
import { Router, Route, Link, browserHistory } from 'react-router';

class App extends React.Component {
  static contextTypes = {
    router: React.PropTypes.object.isRequired,
  };

  render() {
    if (isLoggedIn) {
      this.context.router.push('/home');
    }
    // Return login component
    return <Login />;
  }
}
export default App;
Nach dem Login kopieren

Alternative Ansätze mit React-Router v4

Darüber hinaus bietet React-Router v4 alternative Möglichkeiten zur programmgesteuerten Navigation:

  • Umleiten: Sie können eine Umleitungskomponente verwenden, um Benutzer basierend auf Bedingungen umzuleiten. wie im Folgenden zu sehen ist Beispiel:
import { BrowserRouter as Router, Redirect } from 'react-router-dom';

function App() {
  const isLoggedIn = // Get isLoggedIn from localStorage or API call

  return (
    <Router>
      {isLoggedIn ? <Redirect to='/home' /> : <Login />}
    </Router>
  );
}
export default App;
Nach dem Login kopieren
  • browserHistory.push(): Sie können die Route auch direkt mit der Methode browserHistory.push() programmgesteuert ändern, wie in gezeigt das folgende Beispiel:
import { browserHistory } from 'react-router';

componentDidMount() {
  const isLoggedIn = // Get isLoggedIn from localStorage or API call

  if (isLoggedIn) {
    browserHistory.push('/home');
  }
}
Nach dem Login kopieren

Bedenken Sie, dass der optimale Ansatz für Ihre Anwendung von Ihren spezifischen Anforderungen und abhängen kann Codebasis.

Das obige ist der detaillierte Inhalt vonWie navigiere ich programmgesteuert in React Router v2, v3 und v4?. 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