⊗jsrtPmRtNR 27 of 47 menu

React Router-da Ichki Marshrutlar

Ushbu darsda biz ichki marshrutlar bilan tanishamiz. Oldingi darsda qilgan ilovamizni ishga tushiring. Havolalar bosish orqali biz mahsulot sahifasiga o'tamiz. Faraz qilaylik, bu bizga qulay emas va biz mahsulotlar ro'yxati va mahsulot sahifasi yonma-yon, bir ekranda ko'rsatilishini xohlaymiz. Keling buni shunday qilaylik.

Buning uchun main.jsx faylini ochamiz va mahsulot sahifasi uchun marshrutimizni asosiy marshrutning pastki marshruti qilamiz yoki boshqacha qilib aytganda uni asosiy marshrutga "joylashtiramiz". Buning uchun marshrut obyektining yana bir xususiyati children dan foydalanamiz:

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

Yana havollarni bosamiz, lekin mahsulotlar ro'yxatining o'ng tomonida hech narsa ko'rinmaydi. Buning sababi, biz asosiy marshrutga uning pastki marshrutlarini qayerda ko'rsatishimizni aytmadik.

Pastki marshrutlar elementlarini ota-marshrutda chizish uchun Outlet komponenti yordam beradi. Keling uni kutubxonadan asosiy marshrut fayliga import qilaylik:

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

Keyin uni #product div-iga o'rab chiqamiz va asosiy marshrut uchun maketga nav yopilgan teggidan keyin qo'shamiz, butun konstruksiyani yana bir #main div-iga o'rab chiqamiz:

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

Havolarni bosish orqali, endi biz ham mahsulotlar ro'yxatini, ham mahsulot sahifasini ko'ramiz.

Keling, index.css faylimizga ozgina uslub qo'shamiz:

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

Oldingi darsdagi vazifa uchun yaratgan ilovangizni oling. Dars materiallaridan foydalanib, talaba sahifasi uchun marshrutni asosiy marshrutga joylashtiring.

Endi esa, havollarni bosishda ekranda ham talabalar ro'yxati, ham talaba sahifasi ko'rsatilishini ta'minlang.

Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish