default.js
default.js
檔案用於在 平行路由 中渲染回退,當 Next.js 無法在完整頁面載入後恢復插槽的活動狀態時。
在軟導航期間,Next.js 會追蹤每個插槽的活動狀態(子頁面)。但是,對於硬導航(完整頁面載入),Next.js 無法恢復活動狀態。在這種情況下,可以為與目前 URL 不符的子頁面渲染 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
}
範例 | 網址 | 參數 |
---|---|---|
app/[artist]/@sidebar/default.js | /zack | Promise<{ artist: 'zack' }> |
app/[artist]/[album]/@sidebar/default.js | /zack/next | Promise<{ artist: 'zack', album: 'next' }> |
- 由於
params
prop 是一個 promise。您必須使用async/await
或 React 的use
函式來存取這些值。- 在版本 14 及更早版本中,
params
是一個同步的 prop。為了協助向後相容性,您仍然可以在 Next.js 15 中同步存取它,但此行為在未來將會被棄用。
- 在版本 14 及更早版本中,
這有幫助嗎?