Dynamic imports
Mit dynamic imports können wir JavaScript Module an jeder Stelle im Code importieren – nicht nur am Anfang. Dynamic imports verwenden Promises. Die Syntax sieht so aus:
import('./path-to-module.js') .then(module => { // do sth. with the module }) .catch(error => { // handle error });Das module-Objekt beinhaltet alle named und default exports:
export const one = 'named one';export const two = 'named two';export default 'default export';import('./libary.js').then(module => { console.log(module);});// Console:Module {Symbol(Symbol.toStringTag): "Module"} default: (...) one: (...) two: (...) // ...Wir können named exports über ihren Namen ansprechen, und default exports über die default-Eigenschaft:
import('./library.js').then(module => { console.log(module.one); console.log(module.two); console.log(module.default);});Named exports können wir destrukturieren:
import('./library.js').then(module => { const { one, two } = module; console.log(one); console.log(two);});Allerdings können wir default nicht normal destrukturieren, da default ein reserviertes Keyword ist. Daher müssen wir dem default export einen anderen Variablennamen zuweisen:
import('./library.js').then(module => { const { default: library } = module; console.log(library);});// Console:default export