2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Next.js]ディレクトリ構成のベストプラクティスを考える

Last updated at Posted at 2024-04-12

はじめに

この記事は、個人的にこうしたらよいのではないかという意見をまとめたものです。
ご指摘などあればコメントで教えていただけると嬉しいです。:pray:

前提

こちらの記事はApp Routerを使用しているプロジェクトのディレクトリ構成について書いています。

コンポーネントをどのように管理するか

結論、様々なページで使用するコンポーネントはappディレクトリ配下に置いて、あるページのみでしか使用しないコンポーネントはappディレクトリの外に置くということが大切であると考えます。

appディレクトリ管理するコンポーネントの例

・buttonコンポーネント
・inputコンポーネント
・layoutを指定しているコンポーネント など
※components配下に「elements」フォルダや、「layout」フォルダを作成し、コンポーネントをまとめていくと管理しやすくなります。

appディレクトリの外で管理するコンポーネントの例

appディレクトリ配下で管理しないコンポーネントは、「features」という名前のディレクトリで機能ごとにコンポーネントを管理します。

例えば、ブログの一覧ページで使用するコンポーネントを作成するとして、そのコンポーネントは、他の機能では使用しない、ブログページ固有のコンポーネントであるので、featuresディレクトリ配下に「Blog」ディレクトリを作成し、その中にまとめるなどすれば、管理しやすくなるのでは無いかと思います。
つまり、featuresディレクトリは、機能ごとに使用するコンポーネントを管理するディレクトリと言えるでしょう。

テストファイルの置き場所

テストファイルは、同じ階層に置くとよいかと思います。
テストファイルはテストフォルダに全てまとめるというのも良いかと思いますが、コンポーネントが増えてくると、ファイルを見つけにくくなってしまうので、同階層にまとめたほうが良いと思っています。Storybookを使用するのであれば、そのファイルも一緒に置いておくと良いかと思います。
以下の記事が参考になります。

まとめ

今回は、Next.jsのディレクトリ構造のベストプラクティスについて考えました。
最初にも書きましたが、自分個人としての意見なので、ご意見やご指摘など書いていただけると幸いです。

最後に

他にも色々な記事を書いているので、よければ読んでいってください、、、

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?