Next.js 是一個很好的工具,它能為我們的 React 應用提供許多內建的功能,這些功能在 Web 應用程式中至關重要。

它只為我們的專案文件提供了一點點結構。

所有可見的頁面都放在 /pages 資料夾下。 API 路由則放在 /pages/api 資料夾下。 公開可見的文件放在 /public 資料夾下。

基本上就是這樣。其他的結構都由我們來定義。

我通常會這樣做。

所有頁面需要的 React 元件都放在 /components 資料夾下。

我通常有一個 /components/Common 資料夾,然後根據頁面結構重新創建資料夾:

  • /components/Common
  • /components/Home
  • /components/Profile

…以此類推。

然後我有一個 lib 資料夾,其中包含所有被 React 元件或 API 路由使用的工具程式。這可能是資料獲取、庫初始化、Prisma 設置、資料庫存取、SWR 的請求器、easy-peasy store 等等,基本上任何在任何地方都可以重複使用的東西,但卻不是元件。

我也確保可以這樣引入它們:

import comp from components/Common/comp
import x from lib/x

使用 jsconfig.json 中的以下設定進行設置:

{
 "compilerOptions": {
 "baseUrl": "."
 }
}

我提到了我常常使用的 Prisma。這將需要它自己的 /prisma 資料夾,用於存放模式和遷移,如果需要的話,還可以有一個 SQLite 數據庫。

如果網站有內容(例如 Markdown),我會新增一個 /content 資料夾。

對於中間件(有時很有用),可以考慮使用 /middleware 資料夾,但這是相當少見的。

這樣的結構對於幾乎所有你需要的東西都能正常運作。