import { XXX } と import XXX
以下のように書いたらエラーが出なかったけど、
以下のように書いたらエラー出た。
え? { } って、複数指定する場合に使用するだけじゃなくて、挙動も変わるの?
って思って調べたら、公式にちゃんと書いてあった。
エクスポート方法は、名前付きとデフォルトの 2 種類あります。
名前付きエクスポートはモジュールごとに複数持てますが、デフォルトエクスポートは 1 つに限ります。
export 時に default を記述しない方法を「名前付きエクスポート」と呼び、import 時に { } が必要。また、インポートする時は必ず同名。
export 時に default を記述する方法を「デフォルトエクスポート」と呼び、import 時に { } が不要。また、インポート時に好きな名前を設定可。
という事みたい。
名前付きエクスポート(named export)
デフォルトエクスポート(default export)
どっちを使うのが主流なの?
と思って調べてみた。
よく分かんないけど、「defaultを付ける派」と「defaultを付けない派」に分かれている感じ。
JavaScriptのexport defaultアンチパターンについて、検証してみた
ES modulesのexport defaultは使わないほうがよい
ベースにして遊んでる Vue-Bootstrap-with-Material-Design は、両方使ってるな。
どんな使い分けなのだろうか。
分かんないんで、とりあえず雰囲気で使っとこう。
まー、そのうち正解に近い情報に遭遇するだろ。(適当)
追記
こんなのがあった。
どうやら、デフォルトエクスポートでなく、名前付きエクスポートを使った方が良さそう。
簡単に言えば、
「デフォルトエクスポートを使うと、import 側の裁量で対象を自由に命名できてしまうため、可読性が落ちるし、メンテやリファクタリングの時に余計な手間がかかるから。」
コメント