⊗jsrtPmRtNR 27 of 47 menu

Įdėtieji maršrutai React Router

Šioje pamokoje susipažinsime su įdėtaisiais maršrutais. Paleiskite aplikaciją, kurią darėme praeitoje pamokoje. Spustelėdami nuorodas, patekime į atskirą produkto puslapį. Tarkime, mums tai nepatogu, ir mums norėtųsi, kad produktų sąrašas ir produkto puslapis būtų rodomi greta, viename ekrane, kad būtų aiškiau. Padarykime taip.

Norėdami tai padaryti, atidarykite failą main.jsx ir tiesiog padarykite mūsų produkto puslapio maršrutą vaikiniu šakninio maršruto maršrutu arba, kitais žodžiais tariant, "įdėkite" jį į šakninį maršrutą. Tam panaudosime dar vieną maršruto objekto savybę children:

const router = createBrowserRouter([ { path: '/', element: <Root />, errorElement: <ErrorPage404 />, children: [ { path: 'products/:productId', element: <Product />, }, ], }, ]);

Vėl spustelime nuorodas, bet dešinėje nuo produktų sąrašo nieko nematome. Taip yra dėl to, kad nesakėme šakniniam maršrutui, kur mes norime atvaizduoti jo vaikinius maršrutus.

Būtent vaikinių maršrutų elementų atvaizavimui tėvinėje komponento dalyje mums padės komponentas Outlet. Importuokime jį iš bibliotekos į šakninio maršruto failą:

import { Outlet } from 'react-router-dom';

Tada apgaubkime jį div #product ir įtraukime į šakninio maršruto maketą versto pabaigoje po uždarančios nav žymos, o visą konstrukciją apgaubkime dar vienu div #main:

return ( <div id="main"> <nav> <a href={`/products/1`}>Product1</a> <a href={`/products/2`}>Product2</a> </nav> <div id="product"> <Outlet /> </div> </div> );

Dabar spustelėdami nuorodas matome ir produktų sąrašą, ir produkto puslapį.

Pridėkime šiek tiek stilių į mūsų index.css:

h1, h2 { margin: 0; } div#main { display: flex; margin: 20px; } div#product { margin-left: 40px; }

Paimkite aplikaciją, kurią sukūrėte užduočiai praeitai pamokai. Naudodamiesi pamokos medžiaga, padarykite maršrutą studentų puslapiui įdėtąjį į šakninį.

O dabar padarykite taip, kad spustelint nuorodas ekrane būtų rodomas ir studentų sąrašas, ir studento puslapis.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti