Маршрутизация: React Router

React Router связывает URL с компонентами без полной перезагрузки. Навигация через Link/NavLink, параметры — через useParams.

Каркас

Оберните приложение в BrowserRouter, опишите Routes и Route. Для учебных проектов на Vite этого достаточно.

Дальше

Данные с сервера: запросы к API.

JavaScript

import { BrowserRouter, Routes, Route, Link, useParams } from 'react-router-dom';

function Post() {
  const { id } = useParams();
  return <h1>Пост #{id}</h1>;
}

export function App() {
  return (
    <BrowserRouter>
      <nav>
        <Link to="/">Главная</Link>
        <Link to="/posts/1">Пост 1</Link>
      </nav>
      <Routes>
        <Route path="/" element={<p>Домашняя</p>} />
        <Route path="/posts/:id" element={<Post />} />
      </Routes>
    </BrowserRouter>
  );
}

Практическое задание

Задание: две страницы и ссылка между ними.

  • Есть BrowserRouter и минимум два Route
  • Навигация через Link, не через <a href> с полной перезагрузкой
  • Один маршрут с параметром :id
  • Параметр читается через useParams