Instalace React Router v Redux aplikaci

V předchozích lekcích jsme nainstalovali základní nástroje pro práci s Reduxem. Často se stává, že aplikace potřebuje směrovač pro navigaci mezi jejími webovými stránkami a naše aplikace nebude výjimkou. K tomuto účelu nainstalujeme knihovnu React Router.

Otevřeme náš projekt a v terminálu zadáme následující příkaz:

terminalnpm install react-router-dom

Předbíhám trochu čas, řeknu, že naše Redux aplikace je tradičně věnována produktům, o kterých informace zveřejňují nějací prodejci. Proto nyní trochu předěláme hlavní komponentu App, a také přidáme do aplikace funkcionalitu pro realizaci směrování.

Pro začátek zajdeme do složky src, poté do app a zde vytvoříme soubor root.jsx. Toto bude kořen našeho webu: vlevo budeme mít menu, a vpravo - obsah (zatím zde máme pouze 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>Toto je moje první Redux aplikace!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

A komponentu App předěláme. Pro začátek kompletně smažeme její obsah. Poté naimportujeme dvě funkce pro router a naši kořenovou komponentu Root:

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

Níže po importu vytvoříme router, a napíšeme první trasu, předáme mu naši Root jako zobrazovaný prvek a, odpovídajícím způsobem, nastavíme cestu na '/'. V budoucnu v App budeme přidávat i další potřebné trasy:

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

Níže napíšeme kód funkce App:

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

export default App

Hotovo. Spustíme. V další části budeme realizovat komponenty pro práci Redux aplikace.

Na závěr přidáme trochu krásy, napíšeme pro to styly 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

Přidejte React Router do vaší aplikace.

Задание 2

Nechť se vaše aplikace týká studentů, o kterých informace budou zveřejňovat učitelé. S ohledem na to, vytvořte kořenovou komponentu Root. Předělejte komponentu App jak je popsáno v lekci.