【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)」と呼ばれます。
後ほどコードを見ますが、最初に違いを表にまとめると次のようになります。
コードで確認していきましょう。
コードで確認しよう
まずデフォルト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の基礎の基礎から、発展的内容まで広く解説をしているのでぜひご覧ください。
この記事が気に入ったらサポートをしてみませんか?