default.js
當 Next.js 無法在完整頁面載入後恢復平行路由中區塊的活動狀態時,default.js
檔案用於渲染後備內容。
在軟體導覽期間,Next.js 會追蹤每個區塊的活動*狀態*(子頁面)。 然而,對於硬導覽 (完整頁面載入),Next.js 無法恢復活動狀態。 在這種情況下,可以為與目前網址不符的子頁面渲染 default.js
檔案。
請考慮以下資料夾結構。 @team
區塊有一個 settings
頁面,但 @analytics
沒有。


導覽至 /settings
時,@team
區塊將會渲染 settings
頁面,同時維持 @analytics
區塊目前活動的頁面。
重新整理時,Next.js 會渲染 @analytics
的 default.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 | /zack | Promise<{ artist: 'zack' }> |
app/[artist]/[album]/@sidebar/default.js | /zack/next | Promise<{ artist: 'zack', album: 'next' }> |
- 由於
params
屬性是一個 Promise,您必須使用async/await
或 React 的use
函式來存取值。- 在 14 版及更早版本中,
params
是一個同步屬性。為了向後相容,您仍然可以在 Next.js 15 中同步存取它,但此行為將在未來版本中棄用。
- 在 14 版及更早版本中,
深入瞭解平行路由 (Learn more about Parallel Routes)
這有幫助嗎?