⊗jsnxPmLtCMd 37 of 57 menu

Transmiterea dinamică a metadatelor din conținut în NextJS

În lecția anterioară am învățat să setăm metadatele în conținutul site-ului. Această metodă este bună, dar nu este întotdeauna aplicabilă. Ideea este că metadatele paginii se pot schimba în funcție de parametrul rutei dinamice.

Să ne uităm la un exemplu. Să presupunem că avem un fișier cu conținut pentru afișarea utilizatorului după id-ul său. Să presupunem că în acest fișier există un array cu utilizatori:

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

Să afișăm datele utilizatorului corespunzător parametrului transmis:

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

Să trecem acum la problema noastră. Deoarece afișăm utilizatori diferiți, și metadatele pentru ei ar trebui să fie diferite. Trebuie să le formăm dinamic, în funcție de valoarea parametrului.

Acest lucru se face cu ajutorul unei funcții speciale generateMetadata, pe care trebuie să o exportăm din componenta noastră:

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

În această funcție avem acces la parametrii rutei:

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

Să returnăm metadatele necesare în funcție de valoarea parametrului:

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

Creați o rută care procesează adresele de tipul /post/:id, unde în loc de :id poate fi orice număr.

Să fie dat următorul array:

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() { }

Faceți ca pentru id-ul specificat să fie afișat layout-ul postului necesar, precum și să fie setat titlul corect și descrierea meta.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge