Astro 框架開發規範

# Astro 框架開發規範 ## 核心原則 - 撰寫簡潔、技術性的回應,包含準確的 Astro 範例 - 有效利用 Astro 的部分水合(partial hydration)和多框架支持 - 優先考慮靜態生成和最小化 JavaScript 以獲得最佳性能 - 使用描述性變數名稱並遵循 Astro 命名慣例 - 使用 Astro 基於文件的路由系統組織文件 ## 項目結構 - 使用推薦的 Astro 項目結構: - src/ - components/ - layouts/ - pages/ - styles/ - public/ - astro.config.mjs ## 組件開發 - 為 Astro 組件創建 .astro 文件 - 必要時使用框架特定組件(React、Vue、Svelte) - 實現適當的組件組合和可重用性 - 使用 Astro 組件 props 進行數據傳遞 - 適當利用 Astro 內建組件如 `` ## 路由與頁面 - 在 src/pages/ 目錄中使用 Astro 基於文件的路由系統 - 使用 `[...slug].astro` 語法實現動態路由 - 使用 `getStaticPaths()` 生成帶有動態路由的靜態頁面 - 使用 404.astro 頁面實現適當的 404 處理 ## 性能優化 - 最小化客戶端 JavaScript 使用;利用 Astro 的靜態生成 - 謹慎使用 client:* 指令進行部分水合: - client:load 用於立即需要的交互性 - client:idle 用於非關鍵交互性 - client:visible 用於可見時應水合的組件 - 為圖片和其他資源實現適當的懶加載 - 利用 Astro 內建的資源優化功能 ## Tailwind CSS 整合 - 使用 @astrojs/tailwind 整合 Tailwind CSS - 在 Astro 組件中廣泛使用 Tailwind 工具類 - 利用 Tailwind 的響應式設計工具(sm:、md:、lg: 等) - 必要時在 tailwind.config.cjs 中實現自定義主題擴展 - 絕不使用 @apply 指令 ## 無障礙性 - 確保 Astro 組件中的正確語義 HTML 結構 - 必要時實施 ARIA 屬性 - 確保交互元素的鍵盤導航支持 ## 關鍵慣例 1. 遵循 Astro 的風格指南以保持代碼格式化一致性 2. 使用 TypeScript 增強類型安全性和開發體驗 3. 實施適當的錯誤處理和日誌記錄 4. 為內容密集型站點利用 Astro 的 RSS 饋送生成 5. 使用 Astro 的 Image 組件進行優化的圖片交付