⊗jsnxPmLtCMd 37 of 57 menu

Dinamički prenos metapodataka iz sadržaja u NextJS

U prethodnoj lekciji naučili smo da postavljamo metapodatke u sadržaju sajta. Ova metoda je dobra, ali nije uvek primenljiva. Stvar je u tome što se metapodaci stranice mogu menjati u zavisnosti od parametra dinamičke rute.

Pogledajmo na primeru. Neka imamo fajl sa sadržajem za prikaz korisnika po njegovom id. Neka u ovom fajlu postoji niz sa korisnicima:

let users = [ 'user1', 'user2', 'user3', 'user4', 'user5', ];

Prikažimo podatke korisnika, koji odgovara prosleđenom parametru:

export default function User({ params }) { return <> <h1>user {params.id}</h1> <p> name: {users[params.id]} </p> </>; }

Vratimo se sada na naš problem. Pošto prikazujemo različite korisnike, onda i metapodaci za njih treba da budu različiti. Moramo da ih formiramo dinamički, u zavisnosti od vrednosti parametra.

Ovo se radi pomoću posebne funkcije generateMetadata, koju moramo da eksportujemo iz naše komponente:

export const generateMetadata = () => { return { title: '', description: '', }; };

U ovoj funkciji su nam dostupni parametri rute:

export const generateMetadata = ({params}) => { console.log(params); };

Dajmo da vraćamo potrebne metapodatke u zavisnosti od vrednosti parametra:

export const generateMetadata = ({params}) => { return { title: `Page for user {params.id}`, description: `Description for user "{users[params.id]}"`, }; };

Napravite rutu, koja obrađuje adrese tipa /post/:id, gde umesto :id može biti bilo koji broj.

Neka je dat sledeći niz:

let posts = [ { id: '1', title: 'post 1', desc: 'description for post 1', text: 'text1 text1 text1 text1 text1 text1 text1 text1', }, { id: '2', title: 'post 2', desc: 'description for post 2', text: 'text2 text2 text2 text2 text2 text2 text2 text2', }, { id: '3', title: 'post 3', desc: 'description for post 3', text: 'text3 text3 text3 text3 text3 text3 text3 text3', }, ]; export default function Post() { }

Uredite tako da za zadati id bude prikazana verzija odgovarajućeg posta, a takođe bude postavljen ispravan naslov i meta opis.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij