«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Освоение маршрутизации React: полное руководство по навигации в вашем приложении

Освоение маршрутизации React: полное руководство по навигации в вашем приложении

Опубликовано 7 ноября 2024 г.
Просматривать:760

Mastering React Routing: A Complete Guide to Navigating Your Application

1. Введение в React Router

React Router — это библиотека для управления маршрутизацией в приложениях React. Это позволяет вашему приложению перемещаться между различными компонентами и представлениями без полной перезагрузки страницы, что упрощает работу пользователя.


2. Базовая настройка

Начните с установки реакции-маршрутизатора-dom:

npm install react-router-dom

Настройте базовую маршрутизацию с помощью BrowserRouter, Routes и Route:

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

const Home = () => 

Home

; const About = () =>

About

; const App = () => { return ( } /> } /> ); }; export default App;

3. Вложенная маршрутизация

Для более сложных приложений вы можете вкладывать маршруты. Вот как настроить вложенные маршруты в родительском компоненте:

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

const Dashboard = () => 

Dashboard Home

; const Profile = () =>

Your Profile

; const DashboardLayout = () => { return (
} /> } />
); }; const App = () => { return ( } /> ); }; export default App;

4. Динамическая маршрутизация

Динамическая маршрутизация позволяет передавать параметры в URL-адресе. Вот как определить динамический маршрут и получить к нему доступ:

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

const User = () => {
  const { id } = useParams();
  return 

User ID: {id}

; }; const App = () => { return ( } /> ); }; export default App;

5. Защищенные маршруты

Чтобы реализовать защищенные маршруты, вы можете создать собственный компонент PrivateRoute:

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 ?  : ;
};

const App = () => {
  return (
    } />
        }>
          } />
        
      
  );
};

export default App;

6. Программная навигация

Иногда вам может потребоваться программная навигация, например, после отправки формы. Используйте хук useNavigate в React Router v6:

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

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

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

  return (
    

Login

); }; export default Login;

7. 404 страницы

Обработка ошибок 404 (не найдено), создав универсальный маршрут:

const NotFound = () => 

404 - Page Not Found

; const App = () => { return ( } /> } /> } /> ); }; export default App;

8. Аспекты производительности

Для больших приложений маршруты отложенной загрузки могут повысить производительность. Вот как реализовать отложенную загрузку с помощью React.lazy() и 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 (
    Loading...}>
        } />
          } />
        
  );
};

export default App;

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/mourya_modugula/mastering-react-routing-a-complete-guide-to-navigating-your-application-56dk?1 В случае каких-либо нарушений, пожалуйста, свяжитесь с Study_golang@163. .com, чтобы удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3