Redux ရဲ့ အားသာချက်များ
၁။ Predictable State (ခန့်မှန်းရ လွယ်ကူခြင်း)
Section titled “၁။ Predictable State (ခန့်မှန်းရ လွယ်ကူခြင်း)”Redux မှာ State (Data) တစ်ခု ပြောင်းလဲဖို့အတွက် Action တစ်ခု မဖြစ်မနေ လိုအပ်ပါတယ်။
- ဘယ်သူက (ဘယ် Component က) ပြောင်းလိုက်တာလဲ?
- ဘယ်အချိန်မှာ ပြောင်းလိုက်တာလဲ?
- ဘာကြောင့် ပြောင်းလိုက်တာလဲ?
ဒါတွေအားလုံးကို တိတိကျကျ သိနိုင်ပါတယ်။ CCTV မှတ်တမ်း ပြန်ကြည့်သလိုပါပဲ။ “ပိုက်ဆံ ပျောက်သွားတယ်” ဆိုရင် ဘယ်သူ ယူသွားလဲဆိုတာ ချက်ချင်း သိနိုင်သလို၊ Bug တစ်ခု ဖြစ်လာရင်လည်း ဘယ် Action ကြောင့် ဖြစ်သွားလဲဆိုတာ ချက်ချင်း သိနိုင်ပါတယ်။ ဒါကြောင့် အရာအားလုံးက ထိန်းချုပ်လို့ရ၊ ခန့်မှန်းလို့ရတဲ့ (Predictable) အခြေအနေမှာ ရှိနေပါတယ်။
၂။ Debugging (Time Travel Debugging)
Section titled “၂။ Debugging (Time Travel Debugging)”Redux DevTools ဆိုတဲ့ Extension ကို သုံးပြီး “Time Travel” (အချိန်နောက်ပြန်ဆုတ်ခြင်း) လုပ်လို့ ရပါတယ်။
- လွန်ခဲ့တဲ့ ၅ မိနစ်က State ရဲ့ အခြေအနေကို ပြန်သွားကြည့်မလား?
- အခုဖြစ်သွားတဲ့ Action တစ်ခုချင်းစီကို ဗီဒီယို ပြန်ရစ်သလို Play ကြည့်မလား?
Video Tape ကို အနောက်ပြန်ရစ် (Rewind) လုပ်သလိုမျိုး Application ရဲ့ အခြေအနေကို စိတ်ကြိုက် ပြန်ကြည့်လို့၊ ပြန်သွားလို့ ရတာက Redux ရဲ့ အကြီးမားဆုံး Superpower ပါပဲ။
၃။ Centralized State (တစ်နေရာတည်းမှာ စုစည်းထားခြင်း)
Section titled “၃။ Centralized State (တစ်နေရာတည်းမှာ စုစည်းထားခြင်း)”Data အားလုံးကို Store လို့ခေါ်တဲ့ နေရာတစ်ခုတည်းမှာ စုပြီး သိမ်းထားတဲ့အတွက်:
- Data တွေကို ဟိုဖိုင်၊ ဒီဖိုင် နေရာတကာ လိုက်ရှာစရာ မလိုတော့ပါဘူး။
- Server ဆီက လာတဲ့ Data တွေကို မကြာခဏ ပြန်မခေါ်ရအောင် Cache အနေနဲ့ ခဏသိမ်းထားဖို့ အရမ်း လွယ်ကူပါတယ်။
- App တစ်ခုလုံးရဲ့ အရောင် (Theme) ပြောင်းချင်တာမျိုးဆိုရင်၊ Store ထဲက တစ်နေရာတည်းမှာ ပြင်လိုက်ရုံနဲ့ နေရာတိုင်းမှာ လိုက်ပြောင်းသွားမှာပါ။
၄။ Testing (စမ်းသပ်ရ လွယ်ကူခြင်း)
Section titled “၄။ Testing (စမ်းသပ်ရ လွယ်ကူခြင်း)”Redux ရဲ့ Reducer တွေဟာ Pure Functions တွေ ဖြစ်ပါတယ်။ (ဆိုလိုတာက ပြင်ပအခြေအနေတွေအပေါ် မှီခိုမနေဘူး)။
- Input (Old State + Action) ပေးလိုက်ရင် Output (New State) က အမြဲတမ်း တူညီတဲ့ အဖြေပဲ ထွက်ပါတယ်။
- ဒါကြောင့် Test ရေးရတာ အရမ်း လွယ်ကူပါတယ်။ “ဒီ Action ပေးလိုက်ရင် ဒီ State ထွက်လာလား” ဆိုတာကို အလွယ်တကူ စစ်ဆေးနိုင်ပါတယ်။
ဘယ်အချိန်မှာ Redux ကို မသုံးသင့်ဘူးလဲ?
Section titled “ဘယ်အချိန်မှာ Redux ကို မသုံးသင့်ဘူးလဲ?”Redux က ကောင်းပေမယ့် နေရာတိုင်း သုံးဖို့တော့ မဟုတ်ပါဘူး။ အောက်ပါအခြေအနေတွေမှာဆိုရင် မသုံးသင့်ပါဘူး:
- Project သေးသေးလေးတွေ (ဥပမာ - To-Do List လောက်ပဲ ရေးမယ်ဆိုရင်)
- Component တွေကြားမှာ Data တွေ ဟိုပို့ ဒီပို့ သိပ်လုပ်စရာ မလိုတဲ့ ရိုးရှင်းတဲ့ App တွေဆိုရင်
- Team Member တွေက Redux ကို သေချာ မကျွမ်းကျင်သေးဘူးဆိုရင်
“ယင်ကောင်ကို ပုဆိန်နဲ့ ပေါက်” သလို ကြီးမားတဲ့ လက်နက်ကို အသေးအမွှား နေရာမှာ မသုံးမိစေဖို့၊ တကယ် လိုအပ်လာတဲ့ အချိန်ရောက်မှသာ Redux ကို သုံးသင့်ပါတယ်။