NextJS တွင် အကြောင်းအရာမှ မေတာဒေတာများကို ဒိုင်းနမစ်အလိုက် လွှဲပြောင်းခြင်း

ယခင်သင်ခန်းစာတွင် ဆိုက်အကြောင်းအရာထဲတွင် မေတာဒေတာများ သတ်မှတ်နည်းကို သင်ယူခဲ့ပါသည်။ ဤနည်းလမ်းသည် ကောင်းသော်လည်း အမြဲတမ်း အသုံးဝင်မည် မဟုတ်ပါ။ အကြောင်းမှာ စာမျက်နှာ မေတာဒေတာများသည် ဒိုင်းနမစ် route ၏ parameter အပေါ် မူတည်၍ ပြောင်းလဲနိုင်သောကြောင့် ဖြစ်ပါသည်။

ဥပမာတစ်ခုဖြင့် ကြည့်ရှုကြပါစို့။ သူ၏ id အလိုက် user ကိုပြသရန် အကြောင်းအရာဖိုင်ရှိသည်ဟု ဆိုကြပါစို့။ ထိုဖိုင်ထဲတွင် user များပါဝင်သော array တစ်ခု ရှိသည်ဟု ဆိုကြပါစို့။

app/users/[id]/page.jsxlet users = [
  'user1',
  'user2',
  'user3',
  'user4',
  'user5',
];

ပေးပို့ထားသော parameter နှင့် ကိုက်ညီသည့် user ၏ အချက်အလက်များကို ထုတ်ပြကြပါစို့။

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

ယခုတွင် ကျွန်ုပ်တို့၏ ပြဿနာဆီသို့ ပြန်သွားကြပါစို့။ ကျွန်ုပ်တို့သည် user အမျိုးမျိုးကို ပြသသောကြောင့် ၎င်းတို့အတွက် မေတာဒေတာများလည်း ကွဲပြားသင့်ပါသည်။ ကျွန်ုပ်တို့သည် ၎င်းတို့ကို parameter ၏တန်ဖိုးအပေါ် မူတည်၍ ဒိုင်းနမစ်အလိုက် ဖွဲ့စည်းသင့်ပါသည်။

ဤသည်ကို ကျွန်ုပ်တို့၏ component မှ တင်ပို့ရမည့် အထူး function generateMetadata ကို အသုံးပြု၍ လုပ်ဆောင်သည်။

src/app/test/page.jsxexport const generateMetadata = () => {
  return {
    title: '',
    description: '',
  };
};

ဤ function ထဲတွင် route parameters များကို ရယူနိုင်ပါသည်။

src/app/test/page.jsxexport const generateMetadata = ({params}) => {
  console.log(params);
};

Parameter ၏တန်ဖိုးအပေါ် မူတည်၍ လိုအပ်သော မေတာဒေတာများကို ပြန်ပေးကြပါစို့။

src/app/test/page.jsxexport const generateMetadata = ({params}) => {
  return {
    title: `Page for user {params.id}`,
    description: `Description for user "{users[params.id]}"`,
  };
};
Задание 1

�ုံစံ /post/:id ရှိသော လိပ်စာများကို ကိုင်တွယ်သည့် route တစ်ခု ဖန်တီးပါ၊ အရာ:id နေရာတွင် မည်သည့်နံပါတ်မဆို ဖြစ်နိုင်ပါသည်။

အောက်ပါ array ကို ပေးထားသည်ဟု ဆိုကြပါစို့။

page.jsxlet 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 အလိုက် သင့်လျော်သော post ၏ ပြင်ဆင်မှု (markup) ကို ထုတ်ပြခြင်း၊ ထို့အပြင် မှန်ကန်သော ခေါင်းစဉ်နှင့် မက်တာအဖော်ပြချက်များ သတ်မှတ်ခြင်းတို့ကို ပြုလုပ်ပါ။