📥

JavaScriptのインポート方法による違い

2024/05/22に公開

{} 付きのインポート(名前付きインポート)

import { CORE_CONCEPTS } from './data';
import { EXAMPLES } from './data.js';

名前付きインポートは、エクスポートされるオブジェクトの一部をインポートする際に使用する。モジュールから特定の名前付きエクスポートを取り出して使いたい場合に便利。

利点:

  1. 特定の機能のみインポート: モジュール全体をインポートする必要がなく、必要な部分だけをインポートするため、無駄なメモリ使用を避けるれる。
  2. 名前の衝突を防ぐ: 他のモジュールと名前が衝突しにくい

使用例:

// data.js
export const CORE_CONCEPTS = [/* some data */];
export const EXAMPLES = [/* some data */];

// 使用例
import { CORE_CONCEPTS, EXAMPLES } from './data';

{} なしのインポート(デフォルトインポート)

import Header from './components/Header/Header.jsx';
import TabButton from './components/TabButton.jsx';

デフォルトインポートは、モジュールが1つのデフォルトエクスポートを持っている場合に使用。デフォルトエクスポートは、モジュールが主に提供する機能やオブジェクトを示すことが多い。

利点:

  1. 簡潔な構文: インポートする名前をそのまま使用できるため、コードがすっきり
  2. 柔軟性: インポートする際に、好きな名前で使用できる!

使用例:

// Header.jsx
export default function Header() {
  // component implementation
}

// 使用例
import Header from './components/Header/Header.jsx';

実際の違い

  • デフォルトエクスポート: 1つのモジュールに1つだけ、インポートする際に、任意の名前にできる。
  • 名前付きエクスポート: 1つのモジュールに複数存在できます。インポートする際には、波括弧 {} を使い、エクスポートされた名前をそのまま使う

まとめ

名前付きエクスポートは、複数のエクスポートが必要な場合で、
デフォルトエクスポートはモジュールのメイン機能を表す時に使用

Discussion