Heim  >  Artikel  >  Web-Frontend  >  React Routing beherrschen: Eine vollständige Anleitung zur Navigation in Ihrer Anwendung

React Routing beherrschen: Eine vollständige Anleitung zur Navigation in Ihrer Anwendung

Susan Sarandon
Susan SarandonOriginal
2024-10-04 06:20:29237Durchsuche

Mastering React Routing: A Complete Guide to Navigating Your Application

1. Einführung in React Router

React Router ist eine Bibliothek zur Handhabung des Routings in React-Anwendungen. Es ermöglicht Ihrer App, zwischen verschiedenen Komponenten und Ansichten zu navigieren, ohne die gesamte Seite neu laden zu müssen, was für ein nahtloses Benutzererlebnis sorgt.


2. Grundlegende Einrichtung

Beginnen Sie mit der Installation von „react-router-dom:“

npm install react-router-dom

Grundlegendes Routing mit BrowserRouter, Routen und Route einrichten:

import React from 'react';
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';

const Home = () => <h2>Home</h2>;
const About = () => <h2>About</h2>;

const App = () => {
  return (
    <Router>
      <nav>
        <Link to="/">Home</Link>
        <Link to="/about">About</Link>
      </nav>

      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
      </Routes>
    </Router>
  );
};

export default App;

3. Verschachteltes Routing

Für komplexere Apps können Sie Routen verschachteln. So richten Sie verschachtelte Routen in einer übergeordneten Komponente ein:

import React from 'react';
import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom';

const Dashboard = () => <h2>Dashboard Home</h2>;
const Profile = () => <h2>Your Profile</h2>;

const DashboardLayout = () => {
  return (
    <div>
      <nav>
        <Link to="/dashboard">Home</Link>
        <Link to="/dashboard/profile">Profile</Link>
      </nav>
      <Routes>
        <Route path="/" element={<Dashboard />} />
        <Route path="profile" element={<Profile />} />
      </Routes>
    </div>
  );
};

const App = () => {
  return (
    <Router>
      <Routes>
        <Route path="/dashboard/*" element={<DashboardLayout />} />
      </Routes>
    </Router>
  );
};

export default App;

4. Dynamisches Routing

Dynamisches Routing ermöglicht die Übergabe von Parametern in der URL. So definieren Sie eine dynamische Route und greifen darauf zu:

import { useParams } from 'react-router-dom';

const User = () => {
  const { id } = useParams();
  return <h2>User ID: {id}</h2>;
};

const App = () => {
  return (
    <Router>
      <nav>
        <Link to="/user/1">User 1</Link>
        <Link to="/user/2">User 2</Link>
      </nav>

      <Routes>
        <Route path="/user/:id" element={<User />} />
      </Routes>
    </Router>
  );
};

export default App;

5. Geschützte Routen

Um geschützte Routen zu implementieren, können Sie eine benutzerdefinierte PrivateRoute-Komponente erstellen:

import { Navigate, Outlet } from 'react-router-dom';

const useAuth = () => {
  const user = { loggedIn: true }; // Replace with actual auth logic
  return user && user.loggedIn;
};

const PrivateRoute = () => {
  const isAuth = useAuth();
  return isAuth ? <Outlet /> : <Navigate to="/login" />;
};

const App = () => {
  return (
    <Router>
      <Routes>
        <Route path="/login" element={<Login />} />
        <Route path="/dashboard" element={<PrivateRoute />}>
          <Route path="" element={<Dashboard />} />
        </Route>
      </Routes>
    </Router>
  );
};

export default App;

6. Programmatische Navigation

Manchmal möchten Sie möglicherweise programmgesteuert navigieren, beispielsweise nach der Übermittlung eines Formulars. Verwenden Sie den useNavigate-Hook in React Router v6:

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

const Login = () => {
  const navigate = useNavigate();

  const handleLogin = () => {
    // Login logic here...
    navigate('/dashboard');
  };

  return (
    <div>
      <h2>Login</h2>
      <button onClick={handleLogin}>Login</button>
    </div>
  );
};

export default Login;

7. 404 Seiten

Behandeln Sie 404-Fehler (nicht gefunden), indem Sie eine Catch-All-Route erstellen:

const NotFound = () => <h2>404 - Page Not Found</h2>;

const App = () => {
  return (
    <Router>
      <Routes>
        <Route path="/" element={<Home />} />
        <Route path="/about" element={<About />} />
        <Route path="*" element={<NotFound />} />
      </Routes>
    </Router>
  );
};

export default App;

8. Leistungsüberlegungen

Bei großen Anwendungen können verzögerte Laderouten die Leistung verbessern. So implementieren Sie Lazy Loading mit React.lazy() und Suspense:

import React, { Suspense, lazy } from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';

const Home = lazy(() => import('./Home'));
const About = lazy(() => import('./About'));

const App = () => {
  return (
    <Router>
      <Suspense fallback={<div>Loading...</div>}>
        <Routes>
          <Route path="/" element={<Home />} />
          <Route path="/about" element={<About />} />
        </Routes>
      </Suspense>
    </Router>
  );
};

export default App;

Das obige ist der detaillierte Inhalt vonReact Routing beherrschen: Eine vollständige Anleitung zur Navigation in Ihrer Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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