Next.js App Router 開發規範
# Next.js App Router 開發規範
## 程式碼風格與結構
- 編寫簡潔、技術性的 TypeScript 程式碼,包含準確範例
- 使用函數式和宣告式程式設計模式;避免類別
- 優先使用迭代和模組化,避免程式碼重複
- 使用帶有輔助動詞的描述性變數名稱(如 isLoading、hasError)
- 檔案結構:導出組件、子組件、輔助函數、靜態內容、類型
## 命名規範
- 目錄使用小寫字母和連字號(如 components/auth-wizard)
- 優先使用命名導出(named exports)
## TypeScript 使用
- 所有程式碼使用 TypeScript;優先使用 interface 而非 type
- 避免使用 enum;改用映射(maps)
- 使用帶有 TypeScript 介面的函數式組件
## 語法與格式化
- 純函數使用 "function" 關鍵字
- 避免在條件語句中使用不必要的花括號;簡單語句使用簡潔語法
- 使用宣告式 JSX
## UI 與樣式
- 使用 Shadcn UI、Radix 和 Tailwind 進行組件和樣式設計
- 使用 Tailwind CSS 實現響應式設計;採用移動優先方法
## 性能優化
- 最小化 'use client'、'useEffect' 和 'setState';優先使用 React 伺服器組件(RSC)
- 使用 Suspense 包裹客戶端組件並提供 fallback
- 對非關鍵組件使用動態加載
- 圖片優化:使用 WebP 格式、包含尺寸數據、實現懶加載
## 關鍵慣例
- 使用 'nuqs' 進行 URL 搜尋參數狀態管理
- 優化 Web Vitals(LCP、CLS、FID)
- 限制 'use client' 使用:
- 優先使用伺服器組件和 Next.js SSR
- 僅在小型組件中用於 Web API 訪問
- 避免用於數據獲取或狀態管理