Duomenų tvarkymas Redux
Ankstesniame skyriuje mes įgyvendinome bazinę Redux veikimo schemą ir dabar žinote pagrindinius Redux aplikacijos veikimo principus. Kituose pamokose pradėsime papildyti mūsų produktų aplikacijos funkcionalumą ir dirbsime su duomenimis.
Kadangi aplikacija bus papildoma naujais
komponentais ir maršrutais, padarykime
vieną dalyką su maršrutizacija. Atidarykite produktų
aplikaciją, tada failą root.jsx. Importuokite
jame komponentą Outlet, tuo pačiu ištrinkite
eilutes su ProductsList
ir NewProductForm importavimu:
import { Outlet } from 'react-router-dom'
Dabar komponentas Root bus rodomas
pagal šakninį kelią '/', o visi kiti komponentai
pagal dukterinius Outlet. Tam šiek tiek pakeisime
div #main-page komponento Root išdėstymą:
<div id="main-page">
<h2>Mano Produktų Aplikacija</h2>
<hr></hr>
<NewProductForm />
<ProductsList />
</div>
Čia mes pastatysime Outlet vietoje
komponentų NewProductForm ir
ProductsList:
<div id="main-page">
<h2>Mano Produktų Aplikacija</h2>
<hr></hr>
<Outlet />
</div>
Formą produktų pridėjimui mes dabar
rodysime ProductsList. Atidarykime
failą su šiuo komponentu ir pridėkime formos importą:
import { NewProductForm } from './NewProductForm'
O dabar pridėkime komponentą su forma tiesiai prieš produktų sąrašą. Dabar mūsų išdėstymas atrodys taip:
return (
<div>
<NewProductForm />
<div>
<h2>Produktai</h2>
{dispProducts}
</div>
</div>
)
Parašykime stilių klasei products-list
index.css:
.products-list {
display: flex;
flex-direction: column;
}
Mums belieka tik atlikti pakeitimus
pagrindiniame komponente App. Atidarykime
App.jsx ir importuokime į jį komponentą
ProductsList:
import { ProductsList } from './parts/products/ProductsList'
Tada mūsų vieninteliam kol kas
maršrutui, kuris yra šakninis, pridėkime
savybę children:
const router = createBrowserRouter([
{ path: '/', element: <Root />, children: [] },
])
Ir nurodykime kaip šios savybės reikšmę
pirmąjį dukterinį maršrutą. Kaip kelią
nustatykime jam 'products'. Dabar šiuo
adresu bus rodomas
mūsų produktų sąrašas ProductsList:
children: [
{
path: '/products',
element: <ProductsList />,
},
],
Paleiskime mūsų aplikaciją ir įsitikinkime, kad
nieko nesugadinome. Šaknyje '/' mes matome
tik antraštę. O formelė ir produktų sąrašas
pasislėpė adresu '/products'.
Atidarykite savo studentų aplikaciją.
Faile root.jsx pakeiskite komponentus
StudentsList ir NewStudentForm
į Outlet.
Tegul dabar studento pridėjimo forma
rodoma jūsų StudentsList.
Atlikite pakeitimus savo pagrindiniame komponente
App. Pridėkite prie šakninio maršruto dukterinį,
su keliu '/students', pagal kurį bus
rodomas jūsų StudentsList. Paleiskite
aplikaciją ir įsitikinkite, kad viskas
veikia.