导出为默认多个导入模块

时间:2019-07-25 08:08:16

标签: javascript

如何默认导出多个导入的模块?

我可以做类似下面的代码,但是如果要导入多个文件,样板可能会迅速增长。有实现这个目标的捷径吗?

import Foo from './Foo'
import Bar from './Bar'
//...

export default {
    Foo,
    Bar
    //...
}

请注意,在上面的代码中,我没有导出多个值。我正在导入多个值,对其进行累加,然后将其导出为单个对象。假设上面的代码是Baz.Foo,我打算用Baz.BarBaz.js引用重新导出的值。

4 个答案:

答案 0 :(得分:1)

export default不能与多个导出一起使用:https://developer.mozilla.org/en-US/docs/web/javascript/reference/statements/export#Using_the_default_export

  

如果我们要导出模块的单个值或具有备用值,则可以使用默认导出

您应该使用命名出口,如下所示:

export {
    Foo,
    Bar
    //...
}

答案 1 :(得分:0)

您可以像在mdn上找到的那样进行操作,而不是从导入大量文件中累积样板,而只是简单地将它们重新导出。

// In library.js
export { Spritesheet } from "./Spritesheet.js";
export { TileMap } from "./TileMap.js";
export { Dialogue } from "./Dialogue.js";

// In new_file.js
import { Spritesheet, TileMap, Dialogue } from "../libray.js"
var map = new Spritesheet();

请注意,您无法在default导出中使用此简写形式,因为除了已使用的方法外,您无法将其作为单个模块进行累积和导出,尽管此方法可以实现同样的效果。这样,您可以导入并立即导出,而无需将其打包到对象中。

答案 2 :(得分:0)

在es6中,有两种类型的导出,分别是命名导出和默认导出。

由于要导出默认值,因此将所有模块分配给如下所示的对象

Const modules = {Foo,  Bar }
export default modules;

然后在其他文件中使用,如下所示

Import modules from 'path/yourfiles'
modules.Foo.xxx
modules.Bar.xxx

答案 3 :(得分:0)

import * as name from "module-name";

这将非常适合您的应用程序。 而且,当您要访问对象时,可以使用

name.object = ...;

让我知道,是否正确。