当前位置: 首页 > 面试题库 >

如何有条件导入ES6模块?

贝研
2023-03-14
问题内容

我需要做类似的事情:

if (condition) {
    import something from 'something';
}
// ...
if (something) {
    something.doStuff();
}

上面的代码无法编译;它抛出SyntaxError: ... 'import' and 'export' may only appear at the top level

我尝试使用此处System.import所示的方法,但是我不知道从哪里来。这是没有最终被接受的ES6提案吗?该文章中指向“编程API”的链接将我转至不推荐使用的docs页面。


问题答案:

现在,ECMA确实有动态进口建议。这是在第3阶段。这也可以作为babel-preset使用。

以下是根据您的情况进行条件渲染的方法。

if (condition) {
    import('something')
    .then((something) => {
       console.log(something.something);
    });
}

这基本上返回了一个承诺。承诺解决方案有望包含该模块。该提案还具有其他功能,例如多个动态导入,默认导入,js文件导入等。



 类似资料:
  • 我需要做一些事情,比如: 上面的代码无法编译;它抛出 我尝试使用,如下所示,但我不知道来自哪里。这是一个最终没有被接受的ES6提案吗?该文章中指向“编程 API”的链接将我转储到一个已弃用的文档页面。

  • 问题内容: 我开始认为这是不可能的,但是无论如何我都想问。 我想测试我的一个ES6模块以特定方式调用另一个ES6模块。有了茉莉花,这非常容易- 应用程式码: 和测试代码: 笑话相当于什么?我觉得这是一件很想做的简单的事,但是我一直在努力尝试弄清头发。 我最接近的是将s 替换为s,并将其移入测试/函数中。都不是我想做的事情。 为了获得加分,我希望在其中的功能为默认导出时使整个工作正常进行。但是,我知

  • 用例很简单:我只想导出一个名称与导入时相同的对象。 例如: 但这并不起作用。我必须写: 但这很奇怪。正确的方法是什么? 更新: 感谢帮助和参考。我用许多线索解决了我的问题。下面给大家分享一些我常见的案例和解决方法。

  • 问题内容: 我在玩和使用和。我想在不同的文件中构建多个组件,将其导入单个文件并将其捆绑在一起 假设我有几个这样的组件: my-navbar.jsx main-page.jsx 使用webpack并按照其教程进行操作,我有: 构建项目并运行它之后,在浏览器控制台中出现以下错误: 我究竟做错了什么?如何正确导入和导出组件? 问题答案: 尝试 默认设置 组件中的导出: 通过使用默认值,您表示将成为该模块

  • 问题内容: 我的目录结构如下: 从导入模块。我尝试结合使用with ,但是使用该方法,我只能在using下直接导入所有子模块。我想让他们全都陷入困境。导入的所有子模块的最干净的方法是什么,以便可以从中访问? 编辑:对不起,我有点含糊。我想在运行时导入子模块,而不在中明确指定它们。我可以用来获取子模块名称(除非有人知道更好的方法),但是我不确定使用这些名称(或者返回的ImpImporters ?)导

  • 从ES6JavaScript模块导入和命名资源的正确语法是什么? 例子: 如何一次导入? 它不是什么时候我应该使用花括号进行ES6导入的重复?,它更具体,要求一个单一的用例,而不是一篇文章。