Инсталација React Router-а у Redux апликацију

На претходним лекцијама смо инсталирали основне алате за рад са Redux-ом. Често се дешава да апликацији треба рутер за навигацију по њеним веб страницама и наша апликација неће бити изузетак. За то ћемо инсталирати библиотеку React Router.

Отворимо наш пројекат и укуцајмо у терминалу следећу команду:

terminalnpm install react-router-dom

Да мало скочимо напред, рећи ћу да је наша Redux апликација традиционално посвећена производима, о којима информације постављају неки продавци. Зато ћемо сада мало прерадити главни компонент App, а такође додати у апликацију функционалност за обављање рутирања.

За почетак, идите у фасциклу src, а затим у app и направите овде фајл root.jsx. Ово ће бити корен нашег сајта: лево ће нам бити мени, а десно - садржај (за сада овде имамо само наслов):

app/root.jsxfunction Root() {
  return (
    <div id="main">
      <div id="menu">
        <nav>
          <a>Производи</a>
          <a>Продавци</a>
        </nav>
      </div>
      <div id="main_page">
        <h2>Ово је моја прва Redux апликација!</h2>
        <hr></hr>
      </div>
    </div>
  )
}

export default Root

А компонент App ћемо прерадити. За почетак у потпуности обришите његов садржај. Затим увезете две функције за рутер и наш корени компонент Root:

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

Испод након увоза направите рутер, и запишите прву руту, проследивши му наш Root као приказивани елемент и, одговарајуће, поставивши пут на '/'. У наставку у App додаваћемо и друге потребне руте:

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

Испод напишите код функције App:

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

export default App

То је то. Покрећемо. У следећем одељку ћемо имплементирати компоненте за рад Redux апликације.

На крају, додајмо мало лепоте, тако што ћемо за то написати стилове у 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

Додајте React Router у вашу апликацију.

Задание 2

Нека ваша апликација буде везана за студенте, о којима информације ће постављати предавачи. Имајући то у виду, направите корени компонент Root. Прерадите компонент App као што је описано у лекцији.