⊗jsnxPmLtPR 40 of 57 menu

Lygiagretusis maršruto nustatymas NextJS

NextJS leidžia pasiekti, kad tinklapio dalis rodytų skirtingą turinį priklausomai nuo užklausto URL. Tai vadinama lygiagrečiuoju maršruto nustatymu.

Pažiūrėkime pavyzdžiu. Tarkime, kad turime tokį tinklapio išdėstymą:

export default function RootLayout({children}) { return ( <html lang="en"> <body> <header> antraštė </header> <main> {children} </main> <footer> poraštė </footer> </body> </html> ); }

Tarkime, kad norime, kad antraštėje būtų rodoma dinaminė informacija. Tegul URL /users rodo komponentą su vartotojais, o URL /posts komponentą su įrašais.

Tokiam lygiagrečiajam maršruto nustatymui reikia sukurti specialų aplanką, kurio pavadinimas prasideda simboliu @. Pavyzdžiui, pavadinkime mūsų aplanką @info.

Šiame aplanke talpinsime du komponentus. Pirmasis vartotojų rodymui aplanke /users/, o antrasis įrašų rodymui aplanke /posts/. Gausime tokią failų struktūrą:

  • /app/
    • /@info/
      • /users/
        • page.jsx
      • /posts/
        • page.jsx

Dabar tinklapio išdėstyme turime parašyti specialią įterpimo komandą. Tam reikia naudoti specialųjį dinaminį lizdą.

Kad suprastumėte, kas tai yra, pirmiausia pažiūrėkite į mūsų tinklapio išdėstymo funkcijos parametrą:

export default function RootLayout({children}) { return ( ); }

Atkreipkite dėmesį, kad parametru mums perduodamas objektas, iš kurio mes ištraukiame tinklapio turinį į kintamąjį children.

Šiame objekte gali būti ir kitų raktų. Jie atitinka tuos aplankus, kurių pavadinimus pradėjome su @.

Mūsų atveju turime aplanką @info, o tai reiškia, kad mums bus prieinamas kintamasis info, priklausomai nuo URL talpinantis vieno iš komponentų tekstą - vartotojus arba įrašus. Gaukime šį kintamąjį:

export default function RootLayout({children, info}) { return ( ); }

Dabar išdėstymo viduje galime atvaizduoti kintamąjį info. Į šią vietą priklausomai nuo URL ir bus įterpiamas vieno iš mūsų komponentų tekstas:

export default function RootLayout({children, info}) { return ( <html lang="en"> <body> <header> <div> {info} </div> </header> <main> {children} </main> <footer> poraštė </footer> </body> </html> ); }

Sukurkite dinaminį lizdą dešiniajai šoninei juostai.

Sukurkite dinaminį lizdą kairiajai šoninei juostai.

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