Instalacja React Router w aplikacji Redux

Na poprzednich lekcjach zainstalowaliśmy główne narzędzia do pracy z Redux. Często zdarza się, że aplikacja potrzebuje routera do nawigacji po jego stronach internetowych i nasza aplikacja nie będzie wyjątkiem. W tym celu zainstalujemy bibliotekę React Router.

Otwórzmy nasz projekt i wpiszmy w terminalu następujące polecenie:

terminalnpm install react-router-dom

Wybiegając trochę w przyszłość, powiem, że nasza aplikacja Redux tradycyjnie dotyczy produktów, o których informacje są publikowane przez niektórych sprzedawców. Dlatego teraz trochę przerobimy główny komponent App, a również dodamy do aplikacji funkcjonalność do realizacji routingu.

Na początek wejdźmy do folderu src, a następnie do app i utwórzmy tutaj plik root.jsx. To będzie korzeń naszej strony: po lewej stronie będziemy mieli menu, a po prawej - treść (na razie mamy tutaj tylko tytuł):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Produkty</a>
          <a>Sprzedawcy</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>To jest moja pierwsza aplikacja Redux!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

A komponent App przerobimy. Na początek całkowicie usuńmy jego zawartość. Następnie zaimportujmy dwie funkcje dla routera i nasz komponent główny Root:

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

Poniżej po imporcie utwórzmy router, i wpiszmy pierwszą ścieżkę, przekazując mu nasz Root jako wyświetlany element i, odpowiednio, ustawiając ścieżkę na '/'. W przyszłości w App będziemy dodawać inne niezbędne ścieżki:

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

Poniżej napiszmy kod funkcji App:

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

export default App

Wszystko. Uruchamiamy. W następnej sekcji będziemy realizować komponenty do pracy aplikacji Redux.

Na koniec dodajmy trochę estetyki, przepisując dla tego style w 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

Dodaj React Router do swojej aplikacji.

Задание 2

Niech twoja aplikacja dotyczy studentów, o których informacje będą publikować wykładowcy. Biorąc to pod uwagę, utwórz komponent główny Root. Przerób komponent App jak opisano w lekcji.