Skip to content

Instantly share code, notes, and snippets.

@ibeeger
Last active May 25, 2018 11:38
Show Gist options
  • Save ibeeger/1aa1909062d82ac27515a4f3dce25b51 to your computer and use it in GitHub Desktop.
Save ibeeger/1aa1909062d82ac27515a4f3dce25b51 to your computer and use it in GitHub Desktop.
es6import

export

基本的两种用法:

export function foo() {
// ..
}
export var awesome = 42;
var bar = [1,2,3];
export { bar };
function foo() {
// ..
}
var awesome = 42;
var bar = [1,2,3];
export { foo, awesome, bar };

导出的时候重命名:

function foo() { .. }
export { foo as bar };

默认导出,每个模块只能有一个默认导出:

function foo(..) {
// ..
}
export default foo;
export{ foo as default };

混合默认导出和普通的导出:

function foo() { .. }
function bar() { .. }
function baz() { .. }
export { foo as default, bar, baz, .. };

从其他模块导出:

export { foo, bar } from "baz";
export { foo as FOO, bar as BAR } from "baz";
export * from "baz";

import

import { foo } from "foo";
foo();
import { foo as theFooFunc } from "foo";
theFooFunc();
import foo from "foo";
// or:
import { default as foo } from "foo";
export default function foo() { .. }
export function bar() { .. }
export function baz() { .. }

import FOOFN, { bar, baz as BAZ } from "foo";
FOOFN();
bar();
BAZ();
export function bar() { .. }
export var x = 42;
export function baz() { .. }

import * as foo from "foo";
foo.bar();
foo.x; // 42
foo.baz();

import有一个hoisted的过程,和var声明变量一样:

foo();
import { foo } from "foo";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment