⊗jsnxPmRtDy 19 of 57 menu

Dynamické routy v NextJS

V NextJS lze vytvářet dynamické routy. Takové routy předpokládají, že část URL může mít libovolnou hodnotu. Jako příklad vezměme adresu /users/1, ve které místo jedničky může být libovolné číslo, technicky odpovídající id uživatele, kterého chceme zobrazit.

V tomto případě nemusíme vytvářet mnoho složek pro každé možné číslo. Stačí deklarovat tuto část adresy jako dynamickou. V tomto případě bude všechny požadavky tohoto druhu zpracovávat společný soubor page.jsx.

Abyste vytvořili dynamický parametr, je třeba název příslušné složky uvést do hranatých závorek. V našem případě to bude následující struktura složek:

  • /app/
    • /users/
      • /[id]/

Pojďme vytvořit odpovídající komponentu:

export default function User() { return <p> user </p>; }

Přičemž zadaný parametr bude uložen ve speciálním objektu params. Pojďme zobrazit hodnotu tohoto parametru:

export default function User({ params }) { return <p> user {params.id} </p>; }

Vytvořte routu, která zpracovává adresy druhu /city/:name, kde místo :name může být libovolný řetězec.

Vytvořte routu, která zpracovává adresy druhu /show/:country/:city, kde místo :country a :city mohou být libovolné řetězce.

Vytvořte routu, která zpracovává adresy druhu /post/:id, kde místo :id může být libovolné číslo.

Nechť je dán následující pole:

let posts = [ 'post1', 'post2', 'post3', 'post4', 'post5', ]; export default function Post() { }

Zařiďte, aby v závislosti na hodnotě parametru id ve versti komponenty byl zobrazen odpovídající příspěvek.

Vytvořte routu, která zpracovává adresy druhu /prod/:id, kde místo :id může být libovolné číslo.

Nechť je dán následující pole:

let prods = [ { id: 1, name: 'prod1', cost: 100, }, { id: 2, name: 'prod2', cost: 200, }, { id: 3, name: 'prod3', cost: 300, }, ]; export default function Prod() { }

Zařiďte, aby v závislosti na hodnotě parametru id ve versti komponenty byl zobrazen odpovídající produkt.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout