«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу динамически импортировать модули в ES6 на основе переменных?

Как я могу динамически импортировать модули в ES6 на основе переменных?

Опубликовано 6 ноября 2024 г.
Просматривать:277

How Can I Import Modules Dynamically in ES6 Based on Variables?

Импорт ES6 с учетом переменных

В ES6 оператор импорта предоставляет удобный способ импорта модулей в ваш код. Однако что, если вам нужно импортировать модуль на основе имени переменной во время выполнения? Это может возникнуть в сценариях, когда вы динамически загружаете модули на основе настроек конфигурации.

Статический импорт

К сожалению, оператор импорта в ES6 анализируется статически. Это означает, что импортируемые модули должны быть известны во время компиляции. Следовательно, вы не можете использовать имена переменных для указания модулей для импорта.

API загрузчика

Для динамической загрузки модулей вам необходимо использовать API загрузчика. Этот API предоставляет функцию System.import(), которая принимает строку, определяющую загружаемый модуль. В следующем примере показано, как его можно использовать для загрузки модуля на основе имени переменной:

System.import('./utils/'   variableName).then(function(module) {
  console.log(module);
});

Функция System.import() возвращает обещание, которое разрешается в загруженный модуль. Затем вы можете получить доступ к экспортированным членам модуля с помощью объекта модуля.

Соображения совместимости

API загрузчика поддерживается в современных браузерах и Node.js. Однако вам может потребоваться использовать полифилл для обеспечения совместимости со старыми браузерами.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3