React Router 6 (React маршрутизация) самый подробный туториал
React Router 6 (React маршрутизация) самый подробный туториал
react-draggable
react-draggable

React Router После многих версий разработки он теперь прибыл React Router 6。Хоть и написано в Интернете React-Router Существует множество руководств по самой маршрутизации, но на самом деле, когда дело доходит до React-Router 6 Не так много. В то же время из-за 6 В этой версии представлено множество новых концепций, а также широко используется Крючок, многие старые руководства в Интернете уже непрактичны. В этой статье мы Подведем итог Маршрутизатор React Router 6изиспользование,Используйте примеры, чтобы проиллюстрировать, как реализовать различные сценарии и требования.,Например программный прыжок и т.д..

React Router 6
React Router 6

В Kara Cloud мы также используем множество React-Router 6. Поэтому в процессе объяснения мы будем использовать некоторые практические примеры для иллюстрации проблемы, но основные примеры этой статьи будут помещены репозиторий GitHubсередина,Для справки. Если вы найдете это полезным,Возможно, вы захотите поделиться и добавить звезды.,или существовать в блоге ссылки на эту статью,Пусть больше людей увидят это.

Пожалуйста, обратитесь к другим отличным урокам из этой серии.

Конечно, если вы хотите быстро построить серверную систему, также рекомендуется попробовать Kara Cloud, которая избавит вас от необходимости разработки и обслуживания клиентской и серверной частей.

Что такое React-маршрутизатор

понять Что такое React-маршрутизатор Мы должны сначала понять, что такое SPA (Single Page Приложение), также известное как одностраничное приложение.

Каждое одностраничное приложение на самом деле представляет собой серию JS файл, когда пользователь запрашивает веб-сайт, веб-сайт возвращает весь (или серию) js файлы и HTML, и когда пользователь нажимает на страницу, вам нужно сообщить браузеру, как загрузить адрес другой страницы. Одностраничные приложения обычно имеют только один index.html файл, поэтому он поставляется вместе с браузером <a> Связь tag Его нельзя использовать для перехода к одностраничным приложениям, поэтому вам понадобится React Реализация маршрутизации в .

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

React-Router от 2014 Он начал разработку в 2016 году и уже испытал 6 Вторая основная версия версии, пока пользователи Приходить смотрят, Netflix, Twitter, Discord Ждем, пока крупные производители одобряют его один за другим, поэтому React-Router По сути, это стало React середина做路由из Параметры по умолчанию。Если ты сейчассуществоватьвозвращатьсясуществовать Используйте старыеиз Версия,Хотите обновить,Тогда вы можете обратиться кРуководство по обновлению,В противном случае вы можете обратиться к этой статье шаг за шагом.

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

пример реагирования-маршрутизатора
пример реагирования-маршрутизатора

Хотя это приложение выглядит простым, оно содержит общие функции и API React-Router, в том числе

  • BrowserRouter
  • Link
  • Routes
  • Route
  • Outlet

и т. д.

Как установить React-Router

Установить React-Router очень просто. Если вы используете Yarn или npm, просто используйте обычный метод установки.

Давайте сначала воспользуемся им create-react-app Строительные леса строят app Приходить

Язык кода:txt
копировать
npx create-react-app react-router-6-tutorial

Затем установите его с помощью npm

Если вы используете npm, это

npm install react-router-dom@6

установка пряжи

yarn add react-router-dom@6

так react-router Он установлен. Обратите внимание, что если в web Если да, то вам нужно react-router-dom вместо react-router этот Сумка。Они разныеда,后者Сумка含了 react-native Некоторые компоненты, необходимые в . Если вам нужно только создавать веб-приложения, просто используйте первый.

React Router API

React Router из API существоватьэтоизОфициальная документацияБолее четко это было представлено выше,Здесь мы просто Подвести Итог Вот несколько возможных вариантов использования из API。специфическийизиспользованиесуществовать下文середина我们详细Приходитьговорить,Это просто для справки,Если у вас возникнут проблемы, вы можете это проверить.

BrowserRouter

существовать React Router средний, самый внешний слой из API Обычно просто используйте BrowserRouter。BrowserRouter во внутренней реализации используется history Эта библиотека и React Context Приходитьвыполнитьиз,Итак, когда вы выходите из пользователя, идете вперед и назад,history Эта библиотека запомнит историю пользователя, и вы сможете использовать ее напрямую, когда вам нужно будет перейти.

BrowserRouter использоватьчас,Обычно используйте Приход для переноса других необходимых маршрутов из компонентов.,Таким образом, вам обычно потребуется существование вашего приложения на самом внешнем уровне, чтобы использовать его.,Например, следующим образом

Язык кода:txt
копировать
import ReactDOM from 'react-dom'
import * as React from 'react'
import { BrowserRouter } from 'react-router-dom'
import App from './App`

ReactDOM.render(
  <BrowserRouter>
    <App />
  </BrowserRouter>
, document.getElementById('app))

Route

Route Используйте «Приход», чтобы определить путь доступа с помощью React Отношения между компонентами. Например, если вы хотите, чтобы пользователи посещали https://your_site.com/about из времени загрузки <About /> этот React страница, то вам нужно использовать Route:

Язык кода:txt
копировать
<Route path="/about" element={<About />} />

Routes

Routes Это использование Прихода для обертывания пути доступа к маршрутизации (Route)из. Он определяет, что будет соответственно загружено при вводе данных пользователем в браузере. React компоненты, поэтому в большинстве случаев Routes Единственная функция из — обернуть серию из с помощью Прихода. Route,Например, следующим образом

Язык кода:txt
копировать
import { Routes, Route } from "react-router-dom";

function App() {
  return (
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/about" element={<About />} />
    </Routes>
  );
}

существоватьздесь,Routes сказал React Router Всякий раз, когда пользователь обращается к корневому адресу, загружайте Home эту страницу, и когда пользователь посещает /about когда, загрузить <About /> страница.

Практический пример React Router

существующий, мы представили его выше React Router из API, в остальной части текста мы используем пример Прихода, чтобы проиллюстрировать, как его использовать. React Router。

Сначала мы создаем несколько страниц

Язык кода:txt
копировать
<Home />

<About />

<Dashboard />

Home использовать于展示一个简单изсписок навигации,AboutИспользуется для отображения страницы сведений,и Dashboard Пользователям необходимо войти в систему, прежде чем они смогут получить доступ.

Сначала создаем новый router.js файл и существует, который загружается хорошо React-Router компоненты

Язык кода:txt
копировать
import './App.css';
import { BrowserRouter, Route, Routes } from "react-router-dom"

function App() {

  return <BrowserRouter>
    <Routes>
      <Route path="/" element={<Home />} />
    </Routes>
  </BrowserRouter>
}

const Home = () => {
  return <div>hello world</div>
}

export default App;

Здесь мы непосредственно существуем App.js плюс один позвонил Home изкомпоненты, которые просто отображаются hello wolrd Вот и все. После Прихода мы напишем два других пути и добавим их. About и Dashboard два компонента

Язык кода:txt
копировать
import './App.css';
import { BrowserRouter, Route, Routes } from "react-router-dom"

function App() {

  return <BrowserRouter>
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/about" element={<About />} />
      <Route path="/dashboard" element={<Dashboard />} />
    </Routes>
  </BrowserRouter>
}

const Home = () => {
  return <div>hello world</div>
}

const About = () => {
  return <div>здесьда Караюниз Домашняя страница</div>
}

const Dashboard = () => {
  return <div>Сегодняшние активные пользователи: 42</div>
}

export default App;

В это время, когда мы переключаемся на / или /about или /dashboard , будут отображены соответствующие компоненты. Обратите внимание, что существует каждое из вышеперечисленных Route в, использовать element Товар будет передаваться по компонентам, пока существует path путь, указанный в элементе. существовать Route внешнее использование Routes Завершите весь список маршрутов.

напишите здесь,Мы фактически завершили базовую функцию маршрутизации.,Для подавляющего большинства общедоступных веб-сайтов (или внутренних систем),Это почти закончилось. но иногда,Возможно, вы захотите узнать путь существования пользователя.,Приход выполняет соответствующее отображение и специальную логическую обработку.,или вам необходимо аутентифицировать пользователя, прежде чем он сможет получить доступ к определенному пути.,Тогда вам нужно продолжить чтение следующих нескольких глав.

Как получить текущий путь к странице

каксуществовать React-Router Получить текущий доступ пользователя на странице по пути? На самом деле это очень просто, существовать React-Rotuer 6 , обеспечивает hook Хук, специально используемый для получения текущего пути. В приведенном выше примере из нам нужно только существование, соответствующее странице из, например: About в, добавь это hook Вот и все

Сначала мы импортируем useLocation этот перехватчик, а затем следуйте следующему коду, чтобы получить текущую позицию

Язык кода:txt
копировать
import { useLocation } from 'react-router-dom'

const About = () => {
  // использовать hook
  const location = useLocation();
  const { from, pathname } = location

  return <div>здесьда Караюнизвеб-сайт,В настоящее время вы существуете {pathname}, вы от {from} 跳转过Приходитьиз</div>
}

Как установить путь к странице по умолчанию (например, к странице 404)

существоватьвыше списка маршрутизации Routes , мы можем добавить catch all страница по умолчанию, например Приход 404 страница.

Мы просто хотим существовать, чтобы присоединиться последними path для * путь,Значение для соответствует всем путям,Вот и все

Язык кода:txt
копировать
function App() {

  return <BrowserRouter>
    <Routes>
      <Route path="/" element={<Home />} />
      <Route path="/about" element={<About />} />
      <Route path="/dashboard" element={<Dashboard />} />
      <Route path="*" element={<NotFound />} />
    </Routes>
  </BrowserRouter>
}

// использовать Приходитьделатьдля 404 Страница из компонентов
const NotFound = () => {
  return <div>ты Приходить Пришёл без знанияиздикая местность</div>
}

Конечно, можно поставить 404 Страница должна быть лучше и выглядеть лучше. Например, если вы заходите на Караюн и нет существованияиз Связьиз, она получит 404. Страница выглядит следующим образом

Караюн 404 страница
Караюн 404 страница

Как аутентифицировать и защитить пути с помощью React Router

Подвести итог

В этой статье мы объясним, как использовать React-Router, проиллюстрированный примером React Router 6 серединаиз API,и общийизиспользовать Сцены и т. д.。

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose