首页  >  文章  >  web前端  >  我们可以导入带有动态变量名的 ES6 模块吗?

我们可以导入带有动态变量名的 ES6 模块吗?

Barbara Streisand
Barbara Streisand原创
2024-10-27 07:35:29734浏览

 Can We Import ES6 Modules with Dynamic Variable Names?

使用变量变量名自定义ES6模块导入

简介:

在ES6中,import语句允许我们导入模块并提供具有特定名称的默认导出。但是,我们可以根据运行时值为导入的模块分配变量名称吗?

问题:

是否可以在运行时使用ES6 import 语句,类似于此模式:

<code class="javascript">import something from './utils/' + variableName;</code>

答案:

不幸的是,此语法对于 ES6 import 语句无效。 ES6 中的导入和导出是静态可分析的,不能依赖于运行时信息。

替代方法:

要实现动态导入行为,您可以使用 loader API (polyfill ),它提供了一种名为“System.import”的方法。此方法采用模块说明符作为参数,并返回解析为导入模块的承诺:

<code class="javascript">System.import('./utils/' + variableName).then(function(m) {
  console.log(m);
});</code>

请注意,加载器 API 的兼容性和支持因不同平台和浏览器而异。

以上是我们可以导入带有动态变量名的 ES6 模块吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn