ES6&x2B;javascript模块导出选项
我看到ES6模块的公共导出是通过以下两种方式完成的:ES6&x2B;javascript模块导出选项,javascript,syntax,module,export,ecmascript-6,Javascript,Syntax,Module,Export,Ecmascript 6,我看到ES6模块的公共导出是通过以下两种方式完成的: // method 1 export var getAnswer = function () { return 'forty two'; }; // method 2 export default function () { return 'forty two'; }; 这两者都有效吗 如果是,为什么它们都存在 使用ES6语法的模块导出是否有其他有效选项 我很惊讶我没能用我的谷歌搜索引擎找到答案。我只关心ES6模块,而不关心CommonJ
// method 1
export var getAnswer = function () { return 'forty two'; };
// method 2
export default function () { return 'forty two'; };
我很惊讶我没能用我的谷歌搜索引擎找到答案。我只关心ES6模块,而不关心CommonJS、RequireJS、AMD、Node等。这两个模块都是有效的 方法1提供了命名的导出。这里的关键是,您可以导出多个内容。应使用此选项,而不是导出具有多个属性的对象。导入带有命名导出的模块时,请使用
import{a,b}from c
方法2提供默认导出。只能有一个默认导出。这主要用于导出单个对象,如类
,或单个函数
,您希望在没有任何额外支持的情况下使用这些对象。使用默认导出导入模块时,请使用import d from c
请注意,您可以同时使用这两种方法!因此,如果您有一个主要功能,其中包含少量偶尔使用的帮助程序,则可以导出帮助程序,并导出默认帮助程序。当您导入一个模块并且需要两种类型的导出时,请使用import d,{a,b}from c
另一个选项是,您可以通过在模块末尾列出它们来获得命名的导出,如:export{a,b,c}
。您还可以将它们重命名为导出{a为$a,b为c}
我从中获得了所有这些信息,这是我能够找到的最新es6模块信息的最佳来源
这两者都有效吗
否,export函数(){return answer;}代码>无效,要么使用默认值,要么向该函数声明添加名称
如果是,为什么它们都存在
他们没有:)
使用ES6语法的模块导出是否有其他有效选项
你可以在这里看到很多有效的选项:一年或更晚,这里是我在这个主题上找到的最好的信息
出口有4种类型。下面是每种方法的使用示例,以及使用它们的一些导入:
导出语法
导入语法
我认为区别在于import x from y
vsimport{x}from y
请参见和伟大的列表,但您能否详细介绍每种类型的功能以及区别是什么?这是一个极好的主意。我想对每一个解释都进行全面的阐述,但我已经有一段时间没有接触ES6了,所以我有点生疏了。要等到我回到ES6的土地上,我才能确定我在说什么。你是最棒的
// default exports
export default 42;
export default {};
export default [];
export default (1 + 2);
export default foo;
export default function () {}
export default class {}
export default function foo () {}
export default class foo {}
// variables exports
export var foo = 1;
export var foo = function () {};
export var bar;
export let foo = 2;
export let bar;
export const foo = 3;
export function foo () {}
export class foo {}
// named exports
export {};
export {foo};
export {foo, bar};
export {foo as bar};
export {foo as default};
export {foo as default, bar};
// exports from
export * from "foo";
export {} from "foo";
export {foo} from "foo";
export {foo, bar} from "foo";
export {foo as bar} from "foo";
export {foo as default} from "foo";
export {foo as default, bar} from "foo";
export {default} from "foo";
export {default as foo} from "foo";
// default imports
import foo from "foo";
import {default as foo} from "foo";
// named imports
import {} from "foo";
import {bar} from "foo";
import {bar, baz} from "foo";
import {bar as baz} from "foo";
import {bar as baz, xyz} from "foo";
// glob imports
import * as foo from "foo";
// mixing imports
import foo, {baz as xyz} from "foo";
import foo, * as bar from "foo";
// just import
import "foo";