跳到主要內容

default.js

default.js 檔案用於在 平行路由 中渲染回退,當 Next.js 無法在完整頁面載入後恢復插槽的活動狀態時。

軟導航期間,Next.js 會追蹤每個插槽的活動狀態(子頁面)。但是,對於硬導航(完整頁面載入),Next.js 無法恢復活動狀態。在這種情況下,可以為與目前 URL 不符的子頁面渲染 default.js 檔案。

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

Parallel Routes unmatched routes

當導航到 /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/zackPromise<{ artist: 'zack' }>
app/[artist]/[album]/@sidebar/default.js/zack/nextPromise<{ artist: 'zack', album: 'next' }>
  • 由於 params prop 是一個 promise。您必須使用 async/await 或 React 的 use 函式來存取這些值。
    • 在版本 14 及更早版本中,params 是一個同步的 prop。為了協助向後相容性,您仍然可以在 Next.js 15 中同步存取它,但此行為在未來將會被棄用。