Event Handling

ကျတော်တို့ အခု react ရဲ့ state တွေကို တော်တော်လေး နားလည်းသွားကြမယ်လို့ထင်မိပါတယ်

အခုလက်ရှိကတော့ ကျတော်တို့က react ရဲ့ state ကို အသုံးပြုမယ့် event handle တွေအကြောင်းကို

ဆက်လေ့လာသွားကြရအောင် ဘယ်လိုမျိုးလည်းဆိုတော့ ကျတော်တို့က vanilla js မှာဆိုရင် event တွေကို

ကျတော်တို့ addEventListener တွေနဲ့ စောင့်ကြတယ်မလား

အဲလိုမျိုးပါပဲ့ ကျတော်တို့မှာက JSX ရဲ့အထဲမှာ အသုံးပြုပီးတော့ event တွေကို handle လုပ်ရမယ့်

method (attribute) လေးတွေ ရှိကြပါတယ် ဘာလို့ attribute လို့ပြောတာလည်းဆိုတော့ သူက html tag

မှာလိုမျိုး မြင် သာအောင်ပြောပြလိုက်တာပါ

တော်တော်အသုံးများတဲ့ event တွေက တော့

onClick ( ကျတော်တို့ click နိပ်တာကိုစောင့်ပေးတဲ့ event အများအားဖြင့် button တွေမှာ အသုံးများ )

onChange ( ကျတော်တို့ ရဲ့ ပြောင်းလဲမှုတွေကို စောင့်ကြည့်ပေးတဲ့ event အများအားဖြင့် input တွေမှာ အသုံးများ )

onSubmit ( ကျတော် တို့ form submission တွေ ကို စောင့်ကြည့်ပေးတဲ့ event အများအားဖြင့် form တွေမှာ အသုံးများ )

ဒီသုံးခုက တော့ တော်တော်လေး အသုံးများကြပါတယ်

အခုက လက်ရှိကျတော်တို့ ဆက်လေ့လာကြရမှာက onChange အကြောင်းပါပဲ

ဘာလို့ onChange ကြီးကို ကျတော်က လာပြောပြရတာလည်းဆိုတော့ ကျတော် ရှင်းပြဖို့တွေးထားတာလေး

တစ်ခုရှိလို့ပါ

ကဲ စလိုက်ကြရအောင်ဗျ အရင်ဆုံး ကျတော်တို့ input လေးတခု ဖန်တီးလိုက်ပါမယ်

function Input () {
    return(
        <input type="text" />
    )
}

ကျတော်တို့ အခုလိုမျိုး ဖန်တီးပြီးတော့ state နဲ့ စတင်ပီးတော့ control လုပ်လိုက်တော့မှာပါ

ဘယ်လိုမျိုးလည်းဆိုတော့ ကျတော်တို့ ကုဒ်ကို ဒီလိုလေး ပြင်လိုက်ပါမယ်

ကျတော်တို့ ဒီလိုလေး ရေးလိုက်ပီးရင် browser မှာ သွားပြီးတော့ ကျတော်တို့ စာရိုက်ကြည့်ရင်

input မှာက ကျတော်တို့ စာရိုက်လို့မရတာ ကိုမြင်ရပါလိမ့်မယ်

ဘာလို့လည်းဆိုတော့ ကျတော်တို့က input ရဲ့ value ထဲကို state ကိုထည့်ပြီးတော့ control

လုပ်လိုက်တာဖြစ်တဲ့အတွက် ကျတော်တို့ရဲ့ state က ပြောင်းလဲမှုမလုပ်မချင်း သူ့မှာက စာတွေလာပေါ်မှာမဟုတ်ပါဘူး

စာတွေပဲမပေါ် ဖြစ်တာပါ ကျတော်တို့ရိုက်လိုက်တဲ့ value တွေက အကုန်လုံး ရှိနေပါလိမ့်မယ် ကျတော်တို့

onChange လေး ဆက်ရေးကြည့်လိုက်ကြရအောင်

ကျတော်တို့ အခုလိုမျိုးရေးပြီးတော့ console မှာသွားကြည့်လိုက်မယ်ဆိုရင်

ဒီလိုလေးမြင်ရမှာပါ ပြောချင်တာက ဒီ input လေးကို ကျတော်တို့က state နဲ့ control လုပ်လိုက်ပီးပီပေါ့

သူ့ရဲ့ data လေးကို ယူချင်တဲ့အခါကျတော့ ကျတော်တို့က ဘယ်လိုမျိုးပြန်ပီးတော့ update လုပ်ရမလဲပေါ့

အဲလိုမျိုး ကို ကျတော်တို့က setUsername ဆိုတဲ့ အထဲကို event ရဲ့ value လေးကို ထည့်ပေးလိုက်ရုံပါပဲ

ကျတော်တို့ အဲလိုလေးရေးပြီးတဲ့အခါမှာ browser မှာ ပြန်သွားကြည့်လိုက်ရင် ကျတော်တို့ စာရိုက်လို့ရသွားတာကို

မြင်ရပါလိမ့်မယ် ဒီအချိန်မှာ ဘာတခုထူးဆန်းတာလည်းဆိုတော့ ကျတော်တို့ က setState နဲ့မလုပ်ခင်တုန်းက

စာရိုက်ရင်း အခုလိုမျိုး စာလုံးဆက်ပီး တော့မထွက်လာဘဲနဲ့ အခုမှ စာလုံးဆက်ပီးတော့ ထွက်လာတာကိုမြင်ရပါလိမ့်မယ်

အဲဒါက ဘာကြောင့်လည်းဆိုတော့ ကျတော်တို့က react ကနေပီးတော့ control မလုပ်သေးခင် setState ကို

မထည့်ပေးသေးခင်မှာသူက ဘာကိုပဲသိတာလည်းဆိုတော့အခုလက်ရှိ change ဖြစ်သွားတဲ့ event ကိုပဲ သိတာပါ

အဲဒါကို ကျတော်တို့က setState နဲ့ change လုပ်လိုက်တဲ့အခါမှာ input ရဲ့ value ထဲကို state က

ဝင်သွားတဲ့အတွက် ကျတော်တို့က အရင်ရှိခဲ့တဲ့ value နဲ့ update value က string concatenation ဖြစ်သွားတာပါ

အဲအတွက်ကြောင့် ကျတော်တို့က စာရိုက်လိုက်တဲ့အခါမှာ ဒီလိုလေး မြင်ရတာ ဖြစ်တာပါ မဟုတ်ရင်စာတလုံးချင်း

ပေါ်နေရင်တော့ဘာမှမထူးသွားပါဘူး

ဒီလောက်ဆိုရင် ကျတော်တို့ onChange event အကြောင်းကို တော်တော်လေး နားလည်မယ်လို့ ထင်ပါတယ်

ဒါဆိုရင်ကျတော်တို့ နောက်ထပ် တမျိုးကိုဆက်ပြီးတော့လေ့လာလိုက်ကြရအောင်

အဲဒါက ဘာလည်းဆိုတော့ onSubmit ဆိုတဲ့ဟာလေးပါ အဲကောင်က ဘယ်လိုမျိုး

မှာအသုံးများတာလည်းဆိုတော့ ကျတော်တို့က form တွေကို submit လုပ်တဲ့အခါမှာအသုံးပြုကြတာပါ

သူ့မှာက ထူးခြားတာက တခြားကြီးကြီးမားမားမရှိပါဘူးဗျ vanilla js မှာ သုံးတဲ့အတိုင်း အတူတူပါပဲဗျာ

အဲလောက်ဆိုရင်တော့ ကျတော်တို့ event handling တွေကို နားလည်သွားမယ်လို့ထင်ပါတယ်

Last updated