
Reactのexport・importで混乱する人へ | defaultの有無、{ }の有無、全パターン解説
2024.3.15
2026.4.6
この記事は約2分で読めます
Reactで必ず目にする【 export default 】と【 export 】の違い。
import時の { } の有無など、コードと表でまとめて解説。
どちらをいつ使うかが分かります。

筆者:三好アキ(専門用語なしでプログラミング)
▶︎ 三好アキの著書一覧はこちら
exportとimportいろいろ
Reactを使っていると、default exportというコードをかならず目にします。最後の行です。
const App = () => {
return (
<div>
<h1>こんにちは</h1>
</div>
)
}
export default Appそうかと思えば、単にexportだけのコードを見ることもあります。
export const addData = (userName) => {
return userName
}そしてこれらをimportする場面では、次のように{ }付きのものと、無しのものがあります。
import Header from "./components/Header"
import { useDarkMode } from "./hooks/useDarkMode" これらの違いと使い分けをサクッと紹介しましょう。
(*なお、現在のReact開発の主流Vite + Reactはこちらの記事をご覧ください)
違いを表でまとめると…
まず名前です。
default付きのものはそのまま「default export(デフォルトexport)」、無しのものは「named export(名前付きexport)」と呼ばれます。
後ほどコードを見ますが、最初に違いを表にまとめると次のようになります。
| デフォルトexport | 名前付きexport | |
|---|---|---|
| ファイルからexportできる数 | 1つ | 複数可 |
| import時の名前 | 任意の名前を利用可 | export時と同じ名前(asで任意の名前利用可) |
| import時の記法 | カッコなし | カッコあり |
export・import・コンポーネント・props・useState……
Reactを学び始めると、見慣れない用語が次々出てきます。
Reactの基礎用語をまとめたミニ辞書を無料で配布しています。
「この言葉、どういう意味だっけ」というときの参照用にどうぞ▼
では、コードで確認していきましょう。
コードで確認しよう
まずデフォルトexportの例です。
const myDefaultFunction = () => {
...
}
export default myDefaultFunctionReactコンポーネントでよく見るコードです。
これをexportしてみましょう。
import myDefaultFunction from "./myDefaultFunction.js"これもReactでよく目にするコードです。
しかしデフォルトexportでは、import時に任意の名前を使えます。
import tokyo from "./myDefaultFunction.js"次は名前付きexportを見ましょう。
名前付きexportは、ひとつのファイルで複数使えます。
export const myNamedFunction1 = () => {
...
}
export const myNamedFunction2 = () => {
...
}そしてこれをimportするときには{ }が必要です。
import { myNamedFunction1 } from "./myNamedFunctions.js"
import { myNamedFunction1, myNamedFunction2 } from "./myNamedFunctions.js"一括でimportしたいときは次のように書きます。
import * as MainFunctions from "./myNamedFunctions.js"そして次のように使います。
MainFunctions.myNamedFunction1()
MainFunctions.myNamedFunction2()import時に任意の名前を使う場合はasを使います。
import { myNamedFunction1 as tokyo } from "./myNamedFunctions.js"なおReact自体に難しさを感じている人は、下記記事をご覧ください。
解決法を紹介しています。
default exportと普通のexportの使い分け
明確な基準はありませんが、目安として、ファイルから大きな機能をひとつexportするときには「デフォルト・エクスポート」。
小〜中規模の複数の機能をexportしたいときは「名前付きエクスポート」が使われます。
よくある質問(FAQ)
Q1. Reactコンポーネントのファイルは、なぜほぼ必ずexport defaultで書かれているのですか?
Reactコンポーネントは「1ファイルに1つ」というのが基本的な設計のためです。
1ファイルから大きな機能をひとつexportするケースにはデフォルトexportが向いており、Reactコンポーネントのファイルはその典型例です。
Q2. 1つのファイルにデフォルトexportと名前付きexportを混在させることはできますか?
できます。
ただし、デフォルトexportは1ファイルに1つだけという制限は変わりません。
名前付きexportは複数あっても問題ないため、用途に応じて使い分けることができます。
Q3. カスタムフック(useDarkModeなど)のimportに{ }がついているのはなぜですか?
カスタムフックは名前付きexportで書かれることが多いためです。
名前付きexportをimportするときは必ず{ }が必要になります。
逆に{ }がないものはデフォルトexportと判断できます。
「export/importの違いは分かった。でも次に詰まったときはどうすれば?」
React開発で出てくる疑問をAIにうまく聞くための【プロンプト10個をまとめた無料ガイド】を配布しています。
エラー解決・概念理解・コードレビューまで、場面別にそのまま使えます▼

✤ 筆者 ✤
三好アキ(専門用語なしでプログラミング)
非IT出身。かつてプログラミングの専門用語の壁に何度もぶつかり、挫折した経験から、「専門用語なし」のメソッドを確立。1,200人以上のビギナーのフロントエンド開発入門を成功させる。翔泳社『動かして学ぶ!Next.js/React開発入門』(韓国でも出版)など著書30冊以上。Amazonベストセラー1位複数回獲得。
法人・チーム向けのReact研修講座も行っています ▶︎ 詳しくはこちら