⊗jsrtPmRtNR 27 of 47 menu

Pesastatud marsruudid React Routeris

Selles õppetükis tutvume pesastatud marsruutidega. Käivitage rakendus, mida me tegime eelmisel õppetükil. Linkidele klõpsates jõuame eraldi lehele tootega. Oletame, et see pole meile mugav ja me sooviksime, et toodete nimekiri ja toodete lehekülg kuvataks kõrvuti, ühel ekraanil suurema selguse huvides. Teeme seda nii.

Selleks avame faili main.jsx ja teeme lihtsalt oma marsruudi tootelehekülje jaoks juurmarsruudi alamaks marsruudiks või teisisõnu "pestastame" selle juurmarsruuti. Selleks kasutame veel üht marsruudi objekti omadust children:

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

Klõpsame uuesti linkide peale, aga toodete nimekirjast paremal me ei näe midagi. Kõik sellepärast, et me ei öelnud juurmarsruudile, kus me soovime kuvada tema alamaks marsruute.

Just alamaks marsruutide elementide renderdamiseks vanemrakenduses aitab meil komponent Outlet. Importime selle teegist faili juurmarsruudi jaoks:

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

Seejärel mähime selle div-i #product ja lisame selle juurmarsruudi maketti veeru lõpus pärast sulgevat silti nav, ja mähime kogu konstruktsiooni veel ühte div-i #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> );

Linkidele klõpsates näeme nüüd nii toodete nimekirja kui ka toote lehekülge.

Lisame natuke stiile oma index.css faili:

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

Võtke rakendus, mille te lõite eelmise õppetüki ülesandes. Kasutades õppetüki materjale, tehke marsruut õpilase lehekülje jaoks pesastatud juurmarsruuti.

Ja nüüd tehke nii, et linkidele klõpsates kuvataks ekraanil nii õpilaste nimekiri kui ka õpilase lehekülg.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu