Inštalácia React Router v Redux aplikácii

Na predchádzajúcich lekciách sme nainštalovali hlavné nástroje pre prácu s Reduxom. Často sa stáva, že aplikácia potrebuje smerovač pre navigáciu medzi jej webovými stránkami a naša aplikácia nebude výnimkou. Preto nainštalujeme knižnicu React Router.

Otvorme náš projekt a napíšme do terminálu nasledujúci príkaz:

terminalnpm install react-router-dom

Keď trochu nahliadneme do budúcnosti, poviem, že naša Redux aplikácia je tradične venovaná produktom, o ktorých informácie zverejňujú nejakí predajcovia. Preto teraz trochu upravíme hlavný komponent App, a tiež pridáme do aplikácie funkcionalitu pre realizáciu smerovania.

Na začiatok vojdime do priečinka src, a potom do app a vytvorme tu súbor root.jsx. Toto bude koreň našej stránky: naľavo budeme mať menu, a napravo - obsah (zatiaľ tu máme len nadpis):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Products</a>
          <a>Sellers</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>This is my first Redux app!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

A komponent App upravíme. Na začiatok úplne odstránime jeho obsah. Potom importujeme dve funkcie pre router a naš koreňový komponent Root:

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

Nižšie po importe vytvoríme router, a napíšeme prvú trasu, odovzdaním mu náš Root ako zobrazovaného elementu a, zodpovedajúco, nastavením cesty na '/'. V budúcnosti do App budeme pridávať aj ďalšie potrebné trasy:

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

Nižšie napíšeme kód funkcie App:

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

export default App

Všetko. Spustíme. V ďalšej časti budeme realizovať komponenty pre prácu Redux aplikácie.

Na zápridáme trochu krásy, napísaním pre to štýlov v 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

Pridajte React Router do vašej aplikácie.

Задание 2

Nech sa vaša aplikácia týka študentov, o ktorých informácie budú zverejňovať učitelia. S ohľadom na to, vytvorte koreňový komponent Root. Upravte komponent App ako je popísané v lekcii.