![見出し画像](https://assets.st-note.com/production/uploads/images/134080012/rectangle_large_type_2_62de16639bf30a7f6f8c6c3aeccdc017.png?width=1200)
【Reactビギナー向け】default exportとexportの種類をすべて解説
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"
これらの違いと使い分けをサクッと紹介しましょう。
違いを表でまとめると…
まず名前です。
default付きのものはそのまま「default export(デフォルトexport)」、無しのものは「named export(名前付きexport)」と呼ばれます。
後ほどコードを見ますが、最初に違いを表にまとめると次のようになります。
![](https://assets.st-note.com/img/1710551002642-2XdixyiMkc.jpg?width=1200)
コードで確認していきましょう。
コードで確認しよう
まずデフォルトexportの例です。
const myDefaultFunction = () => {
...
}
export default myDefaultFunction
Reactコンポーネントでよく見るコードです。
これを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"
default exportと普通のexportの使い分け
明確な基準はありませんが、目安として、小〜中規模の複数の機能をexportしたいときは名前付きエクスポート、ファイルから大きな機能をひとつexportするときにはデフォルト・エクスポートが使われます。
先月リリースした新刊書『Reactマスター Zero To Hero:自信をもってReactコードが書けるようになる本』では、デフォルト・エクスポートやimportといったJavaScript/Reactの基礎の基礎から、発展的内容まで広く解説をしているのでぜひご覧ください。
https://monotein.base.shop/p/00001
![](https://assets.st-note.com/img/1710551044873-z9i4LFVy9Q.png?width=1200)
この記事の著者については下記リンクをチェック
◆ Amazon著者ページ:https://www.amazon.co.jp/stores/author/B099Z51QF2
公式サイト:https://monotein.com
Twitter:https://twitter.com/monotein_
◆ React、Next.js、TypeScriptなどのお役立ち情報や実践的コンテンツを、ビギナー向けにかみ砕いて無料配信中。メルマガ登録はこちらから → https://monotein.com/register-newsletter