Инсталиране на React Router в Redux приложение

В предишните уроци ние инсталирахме основните инструменти за работа с Redux. Често се случва приложението да се нуждае от маршрутизатор за навигация между неговите уеб страници и нашето приложение няма да бъде изключение. За това ние ще инсталираме библиотеката React Router.

Нека отворим нашия проект и напишем в терминала следната команда:

terminalnpm install react-router-dom

Като малко изпреварвам събитията, ще кажа, че нашето Redux приложение традиционно е посветено на продукти, информация за които се публикува от някакви продавачи. Затова сега ние малко ще преработим главния компонент App, а също така ще добавим във приложението функционалност за осъществяване на маршрутизация.

За начало нека влезем в папката src, а след това в app и създадем тук файл root.jsx. Това ще бъде коренът на нашия сайт: отляво ще имаме меню, а отдясно - съдържание (засега обаче тук имаме само заглавие):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Продукти</a>
          <a>Продавачи</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>Това е моето първо Redux приложение!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

А компонентът App ние ще преработим. За начало напълно ще изтрием неговото съдържание. След това ще импортираме две функции за рутера и нашия коренов компонент Root:

App.jsximport { createBrowserRouter, RouterProvider } from 'react-router-dom'
import Root from './app/root'

По-долу след импорта ще създадем рутер, и ще пропишем първия маршрут, като му подадем нашия Root като елемент за показване и, съответно, ще зададем пътя да бъде '/'. В бъдеще в App ние ще добавяме и други необходими маршрути:

App.jsxconst router = createBrowserRouter([{ path: '/', element: <Root /> }])

По-долу ще напишем кода на функцията App:

App.jsxfunction App() {
  return <RouterProvider router={router} />
}

export default App

Готово. Стартираме. В следващия раздел ние ще реализираме компоненти за работа на Redux приложението.

Накрая ще добавим малко красота, като напишем за това стилове в index.css:

index.cssbody {
  font-size: 24px;
  line-height: 1.5;
}

nav {
  display: flex;
  flex-direction: column;
}

ul {
  list-style: none;
  padding: 0;
}

h1, h2, h3 {
  margin: 0;
}

a {
  text-decoration: none;
  color: blue;
  cursor: pointer;
}

#main {
  display: flex;
  margin: 20px;
}

#menu {
  margin-right: 50px;
  padding-top: 50px;
  padding-right: 50px;
  border-right: 2px solid lightgray;
  font-weight: bold;
}
Задание 1

Добавете React Router към вашето приложение.

Задание 2

Нека вашето приложение да се касае до студенти, информация за които ще бъдат публикувани от преподаватели. Имайки предвид това, създайте коренов компонент Root. Преработете компонента App както е описано в урока.