I've written a short tip about how to import a Javascript module only when needed to improve performance. But very often there is the case when we want to dynamically import multiple modules, given that one module can't be used without the other.
Take for example React and ReactDom.
In a case like this, we can use the Promise.all, and pass it an array with the desired imports. The callback function will be called only when all the modules have finished loading.
Promise.all([
import('https://cdn.skypack.dev/react-dom'),
import('https://cdn.skypack.dev/react')
])
.then(([ReactDOM, React]) => {
createReactButton(React, ReactDOM);
});
Below is a fully working test codepen:
See the Pen
dynamically import - mutiple by JS Craft (@js-craft)
on CodePen.