應用程式路由器
Next.js 應用程式路由器導入了一種新的應用程式建置模型,使用 React 的最新功能,例如 伺服器元件、Suspense 串流 和 伺服器動作。
透過 建立您的第一個頁面 開始使用應用程式路由器。
常見問題
如何在佈局中存取請求物件?
您無法刻意存取原始請求物件。但是,您可以透過僅限伺服器端的函式存取標頭 (headers)
和 Cookie
。您也可以設定 Cookie。
佈局不會重新渲染。它們可以被快取並重複使用,以避免在頁面之間導覽時進行不必要的計算。藉由限制佈局存取原始請求,Next.js 可以防止在佈局中執行可能緩慢或昂貴的使用者程式碼,這可能會對效能產生負面影響。
這種設計還可在不同頁面之間強制執行一致且可預測的佈局行為,從而簡化開發和除錯。
根據您正在建構的 UI 模式,平行路由允許您在同一佈局中渲染多個頁面,並且頁面可以存取路由區段以及 URL 搜尋參數。
如何在頁面上存取網址? 屬性存取路由區段,並透過 searchParams
屬性存取 URL 搜尋參數。
如果您使用的是客戶端元件,則可以使用 usePathname
、useSelectedLayoutSegment
和 useSelectedLayoutSegments
來處理更複雜的路由。
此外,根據您正在建構的 UI 模式,平行路由允許您在同一佈局中渲染多個頁面,並且頁面可以存取路由區段以及 URL 搜尋參數。
如何在伺服器元件中進行重新導向? 從頁面重新導向至相對或絕對 URL。redirect
是暫時性 (307) 重新導向,而 permanentRedirect
是永久性 (308) 重新導向。當這些函式在串流 UI 時使用,它們會插入 meta 標籤以在用戶端發出重新導向。
如何在 App Router 中處理驗證?
以下是一些支援 App Router 的常見驗證解決方案
- NextAuth.js
- Clerk
- Stack Auth
- Auth0
- Stytch
- Kinde
- WorkOS
- 或手動處理工作階段或 JWT
如何設定 Cookie?
您可以在 伺服器動作 或 路由處理程式 中使用 cookies
函式來設定 Cookie。
由於 HTTP 不允許在串流開始後設定 Cookie,因此您無法直接從頁面或佈局設定 Cookie。您也可以從中介軟體設定 Cookie。
我该如何构建多租户应用程序?
如果您正在構建一個服務多個租戶的 Next.js 應用程式,我們構建了一個範例,展示我們建議的架構。
我该如何清除應用程式路由器的快取?
Next.js 中有多層快取,因此有多種方法可以清除不同部分的快取。深入瞭解快取。
是否有任何基於應用程式路由器構建的綜合性開源應用程式?
有的。您可以查看Next.js Commerce或Platforms Starter Kit,這兩個都是使用應用程式路由器且開源的較大型範例。
了解更多
這有幫助嗎?