11. React Router
React Router: Навигация в SPA
Заголовок раздела «React Router: Навигация в SPA»
React Router – это библиотека, позволяющая реализовать навигацию между разными страницами в Single Page Application (SPA) на React. Вместо перезагрузки страницы целиком, React Router обновляет только необходимые компоненты, что делает приложение быстрее и отзывчивее.
Концепция React Router
Заголовок раздела «Концепция React Router»Основная идея React Router – это сопоставление URL-адресов с определенными компонентами. Когда пользователь переходит по ссылке, React Router отображает соответствующий компонент. Для этого используются специальные компоненты, предоставляемые библиотекой.
Основные компоненты:
BrowserRouter: Оборачивает все приложение и использует HTML5 History API для управления историей браузера. (рекомендуется для большинства случаев)Routes: Определяет набор маршрутов.Route: Сопоставляет определенный URL-адрес с компонентом.Link: Создает навигационные ссылки, которые не перезагружают страницу.
Практический пример
Заголовок раздела «Практический пример»Давайте создадим простое приложение с двумя страницами: “Главная” и “О нас”.
import React from 'react';import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
function Home() { return ( <div> <h1>Главная страница</h1> <p>Добро пожаловать!</p> </div> );}
function About() { return ( <div> <h1>О нас</h1> <p>Информация о компании.</p> </div> );}
function App() { return ( <BrowserRouter> <div> <nav> <ul> <li> <Link to="/">Главная</Link> </li> <li> <Link to="/about">О нас</Link> </li> </ul> </nav>
<Routes> <Route path="/" element={<Home />} /> <Route path="/about" element={<About />} /> </Routes> </div> </BrowserRouter> );}
export default App;Пояснения:
- Мы импортируем необходимые компоненты из
react-router-dom. BrowserRouterоборачивает все приложение.- Компонент
Linkсоздает ссылки для перехода между страницами. Атрибутtoуказывает URL-адрес, на который нужно перейти. - Компонент
Routesсодержит определение маршрутов. - Каждый компонент
Routeсопоставляет URL-адрес (атрибутpath) с компонентом (атрибутelement). Например,<Route path="/" element={<Home />} />означает, что при переходе на URL/будет отображен компонентHome.
Жизненный пример
Заголовок раздела «Жизненный пример»React Router используется практически во всех современных SPA приложениях.
- E-commerce сайты: Навигация между категориями товаров, страницами товаров, корзиной и т.д.
- Социальные сети: Переходы между профилями пользователей, лентой новостей, страницами групп и т.д.
- Информационные порталы: Навигация между статьями, разделами, страницами категорий.
- Фреймворки: Next.js и Remix используют React Router (или его аналоги) для реализации навигации и маршрутизации.
Ключевые моменты
Заголовок раздела «Ключевые моменты»- React Router позволяет создавать SPA с плавной навигацией.
BrowserRouter– основной компонент для большинства проектов.RoutesиRouteиспользуются для определения маршрутов.Linkсоздает навигационные ссылки без перезагрузки страницы.- React Router значительно улучшает пользовательский опыт в SPA.