simple-web-system technology

Webに関する技術をシンプルに扱うブログ

Reactコンポーネントファイルの命名規則について・決定版

TL;DR

Reactのコンポーネントファイル(.tsx)の命名使っているUIライブラリに合わせるのが最適解
- shadcn/ui → kebab-case
- Material UI → UpperCamelCase
ルールを増やすより、ライブラリに揃える方がチーム開発ではシンプルで楽。


命名規則の考え方

最近、プロジェクトでReactコンポーネントファイル(.tsx)の命名規則をどうするかを改めて考えた。


.ts.tsx の違い

つまり .tsx は「特別扱い」しても良い。


.tsx ファイルの命名スタイル候補

一般的に選択肢は2つ:
1. UpperCamelCase (PascalCase)
- Button.tsx
- UserCard.tsx

  1. kebab-case
    • button.tsx
    • user-card.tsx

正直どちらも「好みの問題」で、チーム開発だと揉めやすい。


新しい考え方:UIライブラリに合わせる

  • shadcn/ui → 生成されるコンポーネントファイルは kebab-case
  • Material UI → 内部的には UpperCamelCase

→ なので、使っているUIライブラリの命名規則に合わせるのが一番シンプル。
これなら議論が減り、統一感も自然に出る。


余談:自作コンポーネントの区別

逆に、UIライブラリで使われていない命名規則を「自作コンポーネント専用」にすれば区別もつく。

例:
- UIライブラリが kebab-case(shadcn/uiの場合)
→ 自作は UpperCamelCase
- UIライブラリが UpperCamelCase(Material UIの場合)
→ 自作は kebab-case

ただし、ルールが複雑になると面倒なので、結局はライブラリに揃えるのが一番楽


結論

  • .ts.tsx は分けて考える。
  • .tsx命名規則は「UIライブラリに寄せる」。
  • 余計なルールを足すより、シンプルに統一する方がチーム開発では楽。

👉 個人的には 「UIライブラリに合わせる」一択で落ち着きそう。