Instaliranje React Router-a u Redux aplikaciju

Na prethodnim lekcijama smo instalirali osnovne alatke za rad sa Redux-om. Često se dešava da aplikaciji treba ruter za navigaciju po njenim web-stranicama i naša aplikacija neće biti izuzetak. Zbog toga ćemo instalirati biblioteku React Router.

Otvorimo naš projekat i ukucajmo u terminalu sledeću komandu:

terminalnpm install react-router-dom

Malo ispred sebe, reći ću, da je naša Redux aplikacija tradicionalno posvećena proizvodima, o čijim informacijama se nekim prodavcima objavljuje. Zbog toga ćemo sada malo prepraviti glavni komponent App, a takođe ćemo dodati u aplikaciju funkcionalnost za realizaciju rutiranja.

Za početak, uđimo u folder src, a zatim u app i kreirajmo ovde fajl root.jsx. Ovo će biti koren našeg sajta: levo ćemo imati meni, a desno - sadržaj (za sada ćemo ovde imati samo naslov):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Proizvodi</a>
          <a>Prodavci</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>Ovo je moja prva Redux aplikacija!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

A komponent App ćemo prepraviti. Za početak potpuno obrišimo njegov sadržaj. Zatim importujmo dve funkcije za ruter i naš koreni komponent Root:

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

Ispod, nakon importa, kreirajmo ruter, i napišimo prvu rutu, prosledivši mu naš Root kao element za prikaz i, shodno tome, postavivši putanju na '/'. Kasnije ćemo u App dodati i druge potrebne rute:

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

Ispod napišimo kod funkcije App:

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

export default App

Sve. Pokrećemo. U narednoj sekciji ćemo realizovati komponente za rad Redux aplikacije.

Za kraj dodajmo malo lepote, propisavši za to stilove u 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

Dodajte React Router u vašu aplikaciju.

Задание 2

Neka vaša aplikacija bude posvećena studentima, o čijim informacijama će objavljivati profesori. Imajući to u vidu, kreirajte koreni komponent Root. Prepravite komponent App kao što je opisano u lekciji.