⊗jsnxPmLtCMd 37 of 57 menu

Kontentdən NextJS-də metadata-nın dinamik ötürülməsi

Əvvəlki dərsdə biz saytın kontentində metadata-nı təyin etməyi öyrəndik. Bu üsul yaxşıdır, amma həmişə tətbiq edilə bilməz. Məsələ ondadır ki, səhifənin metadata-sı dinamik marşrutun parametrindən asılı olaraq dəyişə bilər.

Gəlin bir nümunəyə baxaq. Tutaq ki, bizdə onun id-ə görə istifadəçini göstərmək üçün kontenti olan bir fayl var. Tutaq ki, bu faylda istifadəçilər massivi var:

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

Gəlin ötürülən parametrə uyğun gələn istifadəçinin məlumatlarını çıxaraq:

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

İndi problemimizə keçək. Biz müxtəlif istifadəçiləri göstərdiyimiz üçün, onlar üçün metadata da fərqli olmalıdır. Biz onları parametrin dəyərindən asılı olaraq, dinamik şəkildə formalaşdırmalıyıq.

Bu, komponentimizdən ixrac etməli olduğumuz xüsusi generateMetadata funksiyası vasitəsilə edilir:

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

Bu funksiyada bizə marşrutun parametrləri əlçatandır:

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

Gəlin parametrin dəyərindən asılı olaraq lazım olan metadata-nı qaytaraq:

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

/post/:id formasında ünvanları emal edən bir marşrut hazırlayın, burada :id əvəzinə istənilən rəqəm ola bilər.

Tutaq ki, aşağıdakı massiv verilib:

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

Elə edin ki, verilmiş id-yə görə müvafiq postun verilənləri çıxarılsın, həmçinin düzgün başlıq və meta-izah təyin olunsun.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et