简介:
在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中文网其他相关文章!