跳至內容

default.js

當 Next.js 無法在完整頁面載入後恢復平行路由區塊的活動狀態時,default.js 檔案用於渲染後備內容。

軟體導覽期間,Next.js 會追蹤每個區塊的活動*狀態*(子頁面)。 然而,對於硬導覽 (完整頁面載入),Next.js 無法恢復活動狀態。 在這種情況下,可以為與目前網址不符的子頁面渲染 default.js 檔案。

請考慮以下資料夾結構。 @team 區塊有一個 settings 頁面,但 @analytics 沒有。

Parallel Routes unmatched routes

導覽至 /settings 時,@team 區塊將會渲染 settings 頁面,同時維持 @analytics 區塊目前活動的頁面。

重新整理時,Next.js 會渲染 @analyticsdefault.js。如果 default.js 不存在,則會渲染 404 錯誤頁面。

此外,由於 children 是一個隱式插槽,您還需要建立一個 default.js 檔案,以便在 Next.js 無法恢復父頁面的活動狀態時,為 children 渲染一個後備內容。

參考

params(選用)

一個 Promise,解析為一個物件,其中包含從根區段到插槽子頁面的動態路由參數。例如:

app/[artist]/@sidebar/default.js
export default async function Default({
  params,
}: {
  params: Promise<{ artist: string }>
}) {
  const artist = (await params).artist
}
範例網址params
app/[artist]/@sidebar/default.js/zackPromise<{ artist: 'zack' }>
app/[artist]/[album]/@sidebar/default.js/zack/nextPromise<{ artist: 'zack', album: 'next' }>
  • 由於 params 屬性是一個 Promise,您必須使用 async/await 或 React 的 use 函式來存取值。
    • 在 14 版及更早版本中,params 是一個同步屬性。為了向後相容,您仍然可以在 Next.js 15 中同步存取它,但此行為將在未來版本中棄用。