Namestitev React Router v aplikacijo Redux

V prejšnjih lekcijah smo namestili glavna orodja za delo z Redux. Pogosto se zgodi, da aplikacija potrebuje usmerjevalnik za krmarjenje po njenih spletnih straneh in naša aplikacija ne bo izjema. Za to bomo namestili knjižnico React Router.

Odprimo naš projekt in v terminalu vtipkajmo naslednji ukaz:

terminalnpm install react-router-dom

Malce prehitevajoč, bom povedal, da je naša Redux aplikacija tradicionalno posvečena izdelkom, o katerih informacije objavljajo določeni prodajalci. Zato bomo zdaj malce predelali glavno komponento App, in dodali v aplikacijo funkcionalnost za izvajanje usmerjanja.

Za začetek pojdimo v mapo src, nato pa v app in tu ustvarimo datoteko root.jsx. To bo koren naše spletne strani: na levi bomo imeli meni, na desni pa vsebino (za zdaj imamo tu samo naslov):

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

export default Root

Komponento App pa bomo predelali. Za začetek popolnoma izbrišimo njeno vsebino. Nato uvažajmo dve funkciji za usmerjevalnik in našo korensko komponento Root:

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

Spodaj po uvažanju ustvarimo usmerjevalnik, in napišimo prvo pot, tako da ji posredujemo naš Root kot prikazani element in, ustrezno, nastavimo pot na '/'. V nadaljevanju bomo v App dodali še druge potrebne poti:

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

Spodaj napišimo kodo funkcije App:

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

export default App

Vse. Zaženemo. V naslednjem razdelku bomo implementirali komponente za delovanje Redux aplikacije.

Za konec dodajmo malo lepote, tako da za to napišemo sloge 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

Dodajte React Router v vašo aplikacijo.

Задание 2

Naj bo vaša aplikacija posvečena študentom, o katerih bodo informacije objavljali učitelji. Glede na to, ustvarite korensko komponento Root. Predelajte komponento App kot je opisano v lekciji.