ES modules များကို JavaScript တွင် Dynamic Import လုပ်ခြင်း

ES modules များကို dynamic အဖြစ် import လုပ်နိုင်ပါသည်။ ဤစွမ်းရည်သည် တစ်ခါတစ်ရံတွင် အသုံးဝင်တတ်ပါသည်။ ဤလုပ်ဆောင်ချက်ကို မည်သို့လုပ်ဆောင်ရမည်ကို ကြည့်ရအောင်။ ကျွန်ုပ်တို့တွင် အောက်ပါ module ရှိသည်ဆိုပါစို့။

src/test.jsexport function func1() {
  return '1'
}
export function func2() {
  return '2'
}
export default function() {
  return 'text';
};

ဤ module ကို ချက်ချင်းမဟုတ်ဘဲ ခလုတ်တစ်ခုကို ကလစ်နှိပ်သည့် အခါကဲ့သို့သော အခြေအနေတစ်ခုခုပေါ်မူတည်၍ import လုပ်လိုသည်ဆိုပါစို့။

src/index.jsbtn.addEventListener('click', function() {
  
});

import command ကို အသုံးပြု၍ module ကို import လုပ်မည်။

src/index.jsbtn.addEventListener('click', function() {
  import('./test.js');
});

import command ၏ ရလဒ်သည် promise တစ်ခုကို ပြန်ပေးသည်။

src/index.jsbtn.addEventListener('click', function() {
  import('./test.js').then(mod => {
    
  });
});

Callback function ၏ variable အတွင်းသို့ export လုပ်ထားသော function များပါဝင်သည့် object ဝင်လာမည်။

src/index.jsbtn.addEventListener('click', function() {
  import('./test.js').then(mod => {
    let res1 = mod.func1();
    let res2 = mod.func2();
    
    console.log(res1, res2);
  });
});

Default အဖြစ် export လုပ်ထားသောအရာသည် default key အတွင်း၌ ရှိနေမည်။

src/index.jsbtn.addEventListener('click', function() {
  import('./test.js').then(mod => {
    let dfn = mod.default;
    console.log(dfn);
  });
});

Import လုပ်စဉ်တွင် destructuring လုပ်နိုင်ပါသည်။

src/index.jsbtn.addEventListener('click', function() {
  import('./test.js').then(({func1, func2}) => {
    let res1 = func1();
    let res2 = func2();
    
    console.log(res1, res2);
  });
});
Задание 1

တစ်ပတ်အတွင်းရှိ ရက်သတ္တပတ်၏ အမည်များ array တစ်ခုကို export လုပ်သည့် module တစ်ခုကို ဖန်တီးပါ။ ခလုတ်တစ်ခုကို နှိပ်လိုက်သောအခါ ထို module ကို import လုပ်ပြီး ရက်သတ္တပတ်များကို ul list အဖြစ် ပြသပါ။