default.js

default.js 檔案用於在 平行路由 (Parallel Routes) 中提供後備渲染,當 Next.js 在完整頁面載入後無法恢復 插槽 (slot) 的活動狀態時使用。

軟導航 (soft navigation) 期間,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 (選用)

一個解析為包含從根段到插槽子頁面的 動態路由參數 (dynamic route parameters) 物件的 Promise。例如:

export default async function Default({
  params,
}: {
  params: Promise<{ artist: string }>
}) {
  const { artist } = await params
}
export default async function Default({ params }) {
  const { artist } = await params
}
範例URLparams
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 中您仍然可以同步存取它,但此行為將在未來被棄用。