@ohakutsu
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Discussion
Closed

React開発で使うならnamed export?default export?

Discussion
Closed

知りたいこと

Reactの開発をしていて、コンポーネントごとにファイルを分けると思います。
そこで、コンポーネントをnamed exportするかdefault exportするかについて、いろんな意見をお聞きしたいです。

ちなみに私はエディタでのサジェストなどが聞くため、named exportで開発しています。
詳しくは、こちら → https://qiita.com/ohakutsu/items/218939c93c8fc8620d77

1
Report this answer

正直ベストプラクティスと断言できるほど分かってませんが、次のような使い分けはどうでしょうか?

コンポーネントAとコンポーネントBがあり、依存関係A→Bがある場合、

  • A・Bとも同じチームの管理下にある場合: 名前付きエクスポート
  • そうでない場合: デフォルトエクスポート

A・Bとも同じチームの管理下にある場合

Bをリファクタリングしたり、Bの責務が変わったたりして、名前を変更することがあると思います。その場合、同じコードベースにあるAは、Bの新名に追従してほしいところです。そうなってくると、名前付きエクスポートのほうが静的解析ツール(TypeScriptなど)で発見できるので、運用がしやすいです。

AとBの開発主体が協調関係にない場合

Aを開発しているチームの指揮命令系統にないところでBが開発されるようなケースです。たとえば、Bがオープンソースのライブラリだったり、別のチームだったり。そのようなケースで名前付きエクスポートを使うと、Bのリファクタリングなどにより、Aをはじめ無関係なライブラリユーザーたちが改名につきあわされるか、気づかず不具合を生んだりすることが懸念されます。Bを開発する立場でも、名前付きエクスポートにしていると、変更に慎重にならざるを得ず、本当は改名したいけど怖いからできない、なんてこともありそうです。AとBの開発主体が協調関係にない場合は、デフォルトエクスポートを使うのも合理性がありそうです。

かくいう僕も気になるところなので他の人の意見も聞きたいです!

7
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login