Instalacja React Router w aplikacji Redux
Na poprzednich lekcjach zainstalowaliśmy główne narzędzia do pracy z Redux. Często zdarza się, że aplikacja potrzebuje routera do nawigacji po jego stronach internetowych i nasza aplikacja nie będzie wyjątkiem. W tym celu zainstalujemy bibliotekę React Router.
Otwórzmy nasz projekt i wpiszmy w terminalu następujące polecenie:
npm install react-router-dom
Wybiegając trochę w przyszłość, powiem, że nasza
aplikacja Redux tradycyjnie dotyczy
produktów, o których informacje są publikowane
przez niektórych sprzedawców. Dlatego teraz trochę
przerobimy główny komponent App, a
również dodamy do aplikacji funkcjonalność do
realizacji routingu.
Na początek wejdźmy do folderu src, a następnie
do app i utwórzmy tutaj plik root.jsx. To
będzie korzeń naszej strony: po lewej stronie będziemy mieli menu,
a po prawej - treść (na razie mamy tutaj
tylko tytuł):
function Root() {
return (
<div id="main">
<div id="menu">
<nav>
<a>Produkty</a>
<a>Sprzedawcy</a>
</nav>
</div>
<div id="main_page">
<h2>To jest moja pierwsza aplikacja Redux!</h2>
<hr></hr>
</div>
</div>
)
}
export default Root
A komponent App przerobimy. Na początek
całkowicie usuńmy jego zawartość. Następnie
zaimportujmy dwie funkcje dla routera i nasz
komponent główny Root:
import { createBrowserRouter, RouterProvider } from 'react-router-dom'
import Root from './app/root'
Poniżej po imporcie utwórzmy router,
i wpiszmy pierwszą ścieżkę, przekazując mu
nasz Root jako wyświetlany element
i, odpowiednio, ustawiając ścieżkę na '/'.
W przyszłości w App będziemy dodawać
inne niezbędne ścieżki:
const router = createBrowserRouter([{ path: '/', element: <Root /> }])
Poniżej napiszmy kod funkcji App:
function App() {
return <RouterProvider router={router} />
}
export default App
Wszystko. Uruchamiamy. W następnej sekcji będziemy realizować komponenty do pracy aplikacji Redux.
Na koniec dodajmy trochę estetyki, przepisując dla
tego style w index.css:
body {
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;
}
Dodaj React Router do swojej aplikacji.
Niech twoja aplikacja dotyczy
studentów, o których informacje będą
publikować wykładowcy. Biorąc to pod uwagę,
utwórz komponent główny Root.
Przerób komponent App jak
opisano w lekcji.