ES მოდულების დინამიური იმპორტი JavaScript-ში

ES მოდულების დინამიურად იმპორტირება შესაძლებელია. ეს შესაძლებლობა ზოგჯერ სასარგებლოა. მოდით ვნახოთ, როგორ კეთდება ეს. მაგალითად, გვაქვს შემდეგი მოდული:

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

დავუშვათ, ჩვენ გვსურს ამ მოდულის იმპორტი არა დაუყოვნებლივ, არამედ რაიმე მოვლენისას, მაგალითად, ღილაკზე დაწკაპუნებისას:

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

მოდული იმპორტირებულია ბრძანების გამოყენებით import:

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

import ბრძანება თავის შედეგად აბრუნებს პრომისს:

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

კოლბექის ცვლადში მოხვდება ობიექტი ექსპორტირებული ფუნქციებით:

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

რაც ექსპორტირებულია ნაგულისხმევად, იქნება გასაღებში default:

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

იმპორტის დროს შესაძლებელია დესტრუქტურიზაციის შესრულება:

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

შექმენით მოდული, რომელიც ექსპორტირებს მასივს კვირის დღეების სახელების. ღილაკზე დაჭერისას იმპორტირეთ ეს მოდული და გამოიტანეთ კვირის დღეები სიის ul სახით.