LoginSignup
ohakutsu
@ohakutsu

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

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

DiscussionClosed

知りたいこと

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

ちなみに私はエディタでのサジェストなどが聞くため、named exportで開発しています。
詳しくは↓

2

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

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

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

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

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

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

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

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

8

Your answer might help someone💌