如何默认导出多个导入的模块?
我可以做类似下面的代码,但是如果要导入多个文件,样板可能会迅速增长。有实现这个目标的捷径吗?
import Foo from './Foo'
import Bar from './Bar'
//...
export default {
Foo,
Bar
//...
}
请注意,在上面的代码中,我没有导出多个值。我正在导入多个值,对其进行累加,然后将其导出为单个对象。假设上面的代码是Baz.Foo
,我打算用Baz.Bar
或Baz.js
引用重新导出的值。
答案 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 = ...;
让我知道,是否正确。