es6 import 구문
JavaScript import 구문
자바 스크립트에도 import 구문이 들어 왔다.
아래는 Syntax 이다
정적 import 문은 다른 모듈에서 내 보낸 바인딩을 가져 오는 데 사용됩니다. 가져온 모듈은 귀하가 그러한 모듈을 선언했는지 여부와 관계없이 엄격 모드입니다. import 문은 포함 된 스크립트에서 type = "module"이 아닌 한 사용할 수 없습니다.
위에 부분에서 한참을 헤매었다.
type = "module"의 스크립트를 필요로하지 않는 함수와 같은 동적 import ()도 있습니다. 이전 버전과의 호환성은 script 태그의 속성 nomodule을 사용하여 보장 할 수 있습니다.
동적 가져 오기는 모듈을 조건부로 로드하거나 필요에 따라로드하려는 경우에 유용합니다. 정적 양식은 초기 종속성을로드하는 데 바람직하며 정적 분석 도구와 트리 떨림에서 더 쉽게 얻을 수 있습니다.
import defaultExport from "module-name";
import * as name from "module-name";
import { export } from "module-name";
import { export as alias } from "module-name";
import { export1 , export2 } from "module-name";
import { foo , bar } from "module-name/path/to/specific/un-exported/file";
import { export1 , export2 as alias2 , [...] } from "module-name";
import defaultExport, { export [ , [...] ] } from "module-name";
import defaultExport, * as name from "module-name";
import "module-name";
var promise = import("module-name"); // This is a stage 3 proposal.
import 예제 구문은
import * as myModule from '/modules/my-module.js';
import {myExport} from '/modules/my-module.js';
모듈을 import 하기 위해선 모듈 export가 되어 있어야 된다.
그럼 export Syntax를 보면
// Exporting individual features
export let name1, name2, …, nameN; // also var, const
export let name1 = …, name2 = …, …, nameN; // also var, const
export function functionName(){...}
export class ClassName {...}
// Export list
export { name1, name2, …, nameN };
// Renaming exports
export { variable1 as name1, variable2 as name2, …, nameN };
// Default exports
export default expression;
export default function (…) { … } // also class, function*
export default function name1(…) { … } // also class, function*
export { name1 as default, … };
// Aggregating modules
export * from …;
export { name1, name2, …, nameN } from …;
export { import1 as name1, import2 as name2, …, nameN } from …;
export { default } from …;
사용법
// export features declared earlier
export { myFunction, myVariable };
// export individual features (can export var, let,
// const, function, class)
export let myVariable = Math.sqrt(2);
export myFunction() { ... };