⊗jsnxPmLtCMd 37 of 57 menu

Դինամիկ մետատվյալների փոխանցում բովանդակությունից NextJS-ում

Նախորդ դասում մենք սովորեցինք կայքի բովանդակության մեջ մետատվյալներ նշելու եղանակը: Այս մեթոդը լավ է, բայց միշտ չէ, որ կիրառելի է: Բանն այն է, որ էջի մետատվյալները կարող են փոխվել կախված դինամիկ երթուղու պարամետրից:

Դիտարկենք օրինակով: Ենթադրենք, մենք ունենք բովանդակության ֆայլ օգտագործողին նրա id-ով ցույց տալու համար: Ենթադրենք, այս ֆայլում կա օգտագործողների զանգված.

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

Ցույց տանք տրված պարամետրին համապատասխանող օգտագործողի տվյալները.

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

Այժմ անցնենք մեր խնդրին: Քանի որ մենք ցույց ենք տալիս տարբեր օգտագործողների, ապա և նրանց մետատվյալները պետք է տարբեր լինեն: Մենք պետք է դրանք ձևավորենք դինամիկ կերպով, կախված պարամետրի արժեքից:

Սա արվում է հատուկ ֆունկցիայի generateMetadata միջոցով, որը մենք պետք է էքսպորտ անենք մեր կոմպոնենտից.

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

Այս ֆունկցիայում մեզ հասանելի են երթուղու պարամետրերը.

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

Տանք պահանջվող մետատվյալները կախված պարամետրի արժեքից.

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

Ստեղծեք երթուղի, որը մշակում է /post/:id տեսակի հասցեները, որտեղ :id-ի փոխարեն կարող է լինել ցանկացած թիվ:

Ենթադրենք տրված է հետևյալ զանգվածը.

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

Կատարեք այնպես, որ տրված id-ի համար արտածվի պահանջվող գրառման վերստը, ինչպես նաև սահմանվի ճիշտ վերնագիր և մետանկարագրություն:

Հայերեն
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Մենք օգտագործում ենք cookie-ներ կայքի աշխատանքի, վերլուծության և անհատականացման համար։ Տվյալների մշակումը կատարվում է համաձայն Գաղտնիության քաղաքականության։
ընդունել բոլորը կարգավորել մերժել