import/exportについて
exportの構文
名前付きエクスポート
- モジュール毎に複数持てる。
- インポートする時は、対応するオブジェクトと同じ名前を使用しなければならない。
const x = 1; const y = 2; export { x, y }; // 事前に宣言された機能のエクスポート export const z = 10; // 個別の機能のエクスポート(var, let, const, function, classが可能)
デフォルトエクスポート
- モジュール毎に一つのエクスポート。
- インポート先では、任意の名前を使用できる。
const x = 1; const y = 2; export default x;
importの構文
import defaultExport from "module-name"; import * as name from "module-name"; import { export1 } from "module-name"; import { export1 as alias1 } 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, { export1 [ , [...] ] } from "module-name"; import defaultExport, * as name from "module-name"; import "module-name"; var promise = import("module-name")
- defaultExport : モジュールからのデフォルトのエクスポートを参照する名前。
- module-name: インポートするモジュール
- name: 名前空間のように用いられるモジュールオブジェクトの名前
- exportN: インポートするエクスポートの名前
- aliasN : 指定されたインポートを参照する名前
モジュールのコンテンツを全てインポートする
import * as myModule from '/modules/my-module.js';
エクスポートにアクセスする際はモジュール名を名前空間として使用する。
// myModuleのfoo()にアクセスしたい場合
myModule.foo();
モジュールからエクスポートを1つ/複数インポートする
// mymodule/export.js export const ONE = 1; export const TWO = 2; // mymodule/import.js import { ONE } from ./import // 1つの場合 import { ONE, TWO } from ./import // 複数の場合
インポートする際、名前を変える
// mymodule/export.js export const ONE = 1; export const TWO = 2; // mymodule/import.js import { ONE as one} from ./import // 1つの場合 import { ONE as one, TWO as two } from ./import // 複数の場合