⊗jsrtPmHkUCt 9 of 47 menu

React တွင် useContext ဟူသော အသုံးပြုခြင်း

ဤသင်ခန်းစာတွင် ကျွန်ုပ်တို့သည် context နှင့်အလုပ်လုပ်ဆောင်ခြင်းကို ဆက်လက်ပြုလုပ်သွားမည်။ ယခုအခါ component များ၏သစ်ပင် (tree) တစ်ခုကိုတည်ဆောက်ပါမည်။ စတင်ရန် သီးခြားဖိုင်တွင် React component BigBox ကိုဖန်တီးပါမည်။

function BigBox() { return ( <p>bigbox</p> ); }

၎င်းကို import လုပ်ပြီး ကျွန်ုပ်တို့၏ အဓိက component App အတွင်း၌ ထားရှိပါမည်။

import BigBox from './BigBox'; function App() { return ( <BigBox /> ); }

ပိုမိုရှင်းလင်းစေရန် style အနည်းငယ်ထည့်သွင်းပါမည်။ ဤအတွက် ဖိုင် styles.css ကိုဖန်တီးပါမည်။

div { border: 1px solid blue; margin: 10px; text-align: center; max-width: 300px; }

၎င်းကို App.js အတွင်းသို့ import လုပ်ရန် မမေ့ပါနှင့်။

import './styles.css';

ယခု သီးခြားဖိုင်တွင် component MiddleBox ကိုဖန်တီးပါမည်။

function MiddleBox() { return ( <p>middlebox</p> ); }

ထို့နောက် ၎င်းကို ဘူးကြီး BigBox အတွင်း၌ ထည့်သွင်းပါမည်။

import MiddleBox from './MiddleBox'; function BigBox() { return ( <div> <MiddleBox /> </div> ); }

ဘူးသေး SmallBox အတွက်လည်း အလားတူအရာအားလုံးကို လုပ်ဆောင်ပါမည်။

function SmallBox() { return ( <p>I am ... </p> ); }

ထိုသို့သော ဘူးသေး နှစ်ခုကို MiddleBox အတွင်း၌ ထားရှိပါမည်။

import SmallBox from './SmallBox'; function MiddleBox() { return ( <div> <SmallBox /> <SmallBox /> </div> ); }

ကျွန်ုပ်တို့သည် သစ်ပင်ကိုတည်ဆောက်ပြီးဖြစ်သည်။ ယခုတွင် ကျွန်ုပ်တို့သည် ကိုယ်ပိုင် App မှ SmallBox သို့ ကြိုးအဖြစ် 'small box :)' ဆိုသည့် တန်ဖိုးကို props များကိုအသုံးမပြုဘဲ context ကိုအသုံးပြု၍ ပေးပို့လိုသည် (ကျွန်ုပ်တို့၏ ဘူးလုပ်ငန်းသည် ကြီးမားသောအရွယ်အစားသို့ ကြီးထွားလာခြင်း ဖြစ်နိုင်သည်ဟု ဆိုပါစို့)။

context ဖိုင် MyContext.js ကို ကျွန်ုပ်တို့သည် ယခင်သင်ခန်းစာတွင် ဖန်တီးပြီး ချိတ်ဆက်ပြီးဖြစ်သည်။

ကျွန်ုပ်တို့လုပ်ဆောင်မည့် နောက်တစ်ဆင့်မှာ BigBox ကို ကျွန်ုပ်တို့၏ context object MyContext ၏ property ဖြစ်သော context provider ဖြင့် ထည့်သွင်းပါမည်။ ယခုအခါ ဤတည်ဆောက်မှုအတွင်း၌ ထားရှိသော component အားလုံး (၎င်းတို့သည် BigBox အတွင်း၌ ထည့်သွင်းထားသော ဘူးများအားလုံးလည်းဖြစ်သည်) သည် context ကို ရယူခွင့်ရရှိပြီး context ၏ပြောင်းလဲမှုများကို စောင့်ကြည့်နိုင်မည်ဖြစ်သည်။ context ၏တန်ဖိုးအဖြစ် ကျွန်ုပ်တို့လိုချင်သော 'small box :)' ကို ပေးပို့ပါမည်။

function App() { return ( <MyContext.Provider value="small box :)"> <BigBox /> </MyContext.Provider> ); }

ကျန်ရှိသည်မှာ context ၏တန်ဖိုးကို ဖတ်ရှုရန်ဖြစ်သည်။ ကျွန်ုပ်တို့သည် ၎င်းကို SmallBox တွင်အသုံးပြုလိုသည်၊ ဆိုလိုသည်မှာ context ဖိုင် MyContext.js နှင့် hook useContext ကို import လုပ်ရန်ဖြစ်သည်။

import { useContext } from 'react'; import { MyContext } from './MyContext.js';

useContext ကိုအသုံးပြု၍ context ၏တန်ဖိုးကို variable name အတွင်းသို့ ဖတ်ရှုပါမည်။

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>I am ... </p> </div> ); }

ကျွန်ုပ်တို့သည် SmallBox ကို ဤ context သို့ စာရင်းသွင်းပြီး ၎င်းပြောင်းလဲပါက ဤ component သည်လည်း အသစ်ပြန်လည်ပြုပြင်သွားမည်ဖြစ်သည်။

နောက်ဆုံးအနေဖြင့်၊ variable name ၏တန်ဖိုးကို ဒေါက်လိုက်အစက် (ellipsis) အစား ထည့်သွင်းပါမည်။

function SmallBox() { const name = useContext(MyContext); return ( <div> <p>I am {name} </p> </div> ); }

အလွတ် component App အတွင်း၌ component Parent ကိုဖန်တီးပါ၊ ၎င်းအတွင်း component Daughter ကိုဖန်တီးပါ၊ Daughter အတွင်း component Grandson ကိုဖန်တီးပါ။ Context ကိုအသုံးပြု၍ App မှ အသက်42 ၏တန်ဖိုးကို ပေးပို့ပါ၊ ထို့နောက် useContext ကိုအသုံးပြု၍ ၎င်းကို component Daughter အတွင်း၌ ပြသပါ။

ယခု component Grandson အတွင်း၌ အသက်၏တန်ဖိုးကို ပြသပါ၊ သို့သော် 2 ဖြင့်စားထားသော တန်ဖိုးကို ပြသပါ။

မြန်မာ
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ဝက်ဘ်ဆိုက် လုပ်ဆောင်ခြင်း၊ ဆန်းစစ်လေ့လာခြင်းနှင့် ပုဂ္ဂလိကပြုပြင်ခြင်းအတွက် ကျွန်ုပ်တို့သည် cookie များကို အသုံးပြုပါသည်။ ဒေတာများကို ပြုပြင်ခြင်းသည် ကိုယ်ရေးကိုယ်တာ မူဝါဒအတိုင်း ဖြစ်ပါသည်။
အားလုံးလက်ခံရန် ပြင်ဆင်ရန် ငြင်းပယ်ရန်