Dinamički import ES modula u JavaScript-u
ES module je moguće dinamički importovati. Ova mogućnost ponekad može biti korisna. Pogledajmo kako se to radi. Neka imamo sledeći modul:
export function func1() {
return '1'
}
export function func2() {
return '2'
}
export default function() {
return 'text';
};
Pretpostavimo da želimo da importujemo ovaj modul ne odmah, već nakon određenog događaja, na primer, klikom na dugme:
btn.addEventListener('click', function() {
});
Importujemo modul pomoću naredbe
import:
btn.addEventListener('click', function() {
import('./test.js');
});
Naredba import kao rezultat
vraća promis:
btn.addEventListener('click', function() {
import('./test.js').then(mod => {
});
});
U promenljivu callback-a doći će objekat sa exportovanim funkcijama:
btn.addEventListener('click', function() {
import('./test.js').then(mod => {
let res1 = mod.func1();
let res2 = mod.func2();
console.log(res1, res2);
});
});
Ono što je exportovano podrazumevano,
biće u ključu default:
btn.addEventListener('click', function() {
import('./test.js').then(mod => {
let dfn = mod.default;
console.log(dfn);
});
});
Moguće je izvršiti destructuring prilikom importa:
btn.addEventListener('click', function() {
import('./test.js').then(({func1, func2}) => {
let res1 = func1();
let res2 = func2();
console.log(res1, res2);
});
});
Napravite modul koji exportuje niz
naziva dana u nedelji. Klikom na dugme
importujte taj modul i prikažite
dane u nedelji kao listu ul.