表單與資料異動
表單讓您能在網頁應用程式中建立與更新資料。Next.js 提供了強大的方式來處理表單提交與資料異動,使用 API 路由 (API Routes)。
小知識:
- 我們即將推薦漸進式採用 App 路由並使用伺服器動作 (Server Actions)來處理表單提交與資料異動。伺服器動作讓您能直接從元件呼叫非同步伺服器函式,無需手動建立 API 路由。
- API 路由不指定 CORS 標頭,這表示預設僅允許同源請求。
- 由於 API 路由在伺服器端執行,我們能透過環境變數 (Environment Variables)使用敏感值(如 API 金鑰)而不暴露給客戶端。這對應用程式的安全性至關重要。
範例
僅限伺服器的表單
使用 Pages 路由時,您需要手動建立 API 端點來安全地在伺服器上異動資料。
然後,從客戶端使用事件處理器呼叫 API 路由:
表單驗證
我們推薦使用 HTML 驗證如 required
和 type="email"
來進行基本的客戶端表單驗證。
對於更進階的伺服器端驗證,您可以使用如 zod 這樣的模式驗證函式庫,在異動資料前驗證表單欄位:
錯誤處理
您可以使用 React 狀態來顯示表單提交失敗時的錯誤訊息:
顯示載入狀態
您可以使用 React 狀態來顯示表單在伺服器提交時的載入狀態:
重新導向
如果您想在異動後將使用者重新導向到不同路由,可以使用 redirect
導向任何絕對或相對 URL:
設定 Cookie
您可以在 API 路由中使用回應的 setHeader
方法來設定 Cookie:
讀取 Cookie
您可以在 API 路由中使用 cookies
請求輔助工具來讀取 Cookie:
刪除 Cookie
您可以在 API 路由中使用回應的 setHeader
方法來刪除 Cookie: