Устаноўка React Router у Redux прыкладанне

На мінулых уроках мы ўстанавілі асноўныя інструменты для работы з Redux. Часта бывае так, што прыкладанню патрэбен маршрутызатар для навігацыі па яго web-старонках і наша прыкладанне не стане выключэннем. Для гэтага мы ўсталюем бібліятэку 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>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

А кампанент 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 як апісана ў уроку.