page.js
page
ファイルは、Next.jsアプリケーションでページを定義するために使用されます。
リファレンス
プロパティ
params
(オプション)
ルートセグメントからそのページまでの動的ルートパラメータを含むオブジェクトに解決されるPromise。
対象ルート | URL | params |
---|---|---|
app/shop/[slug]/page.js | /shop/1 | Promise<{ slug: '1' }> |
app/shop/[category]/[item]/page.js | /shop/1/2 | Promise<{ category: '1', item: '2' }> |
app/shop/[...slug]/page.js | /shop/1/2 | Promise<{ slug: ['1', '2'] }> |
params
プロパティはPromiseであるため、値にアクセスするにはasync/await
またはReactのuse
関数を使用する必要があります。- バージョン14以前では、
params
は同期的なプロパティでした。下位互換性のため、Next.js 15では引き続き同期的にアクセスできますが、この動作は将来的に非推奨になります。
- バージョン14以前では、
searchParams
(オプション)
現在のURLの検索パラメータを含むオブジェクトに解決されるPromise。例:
対象URL | searchParams |
---|---|
/shop?a=1 | Promise<{ a: '1' }> |
/shop?a=1&b=2 | Promise<{ a: '1', b: '2' }> |
/shop?a=1&a=2 | Promise<{ a: ['1', '2'] }> |
searchParams
プロパティはPromiseであるため、値にアクセスするにはasync/await
またはReactのuse
関数を使用する必要があります。- バージョン14以前では、
searchParams
は同期的なプロパティでした。下位互換性のため、Next.js 15では引き続き同期的にアクセスできますが、この動作は将来的に非推奨になります。
- バージョン14以前では、
searchParams
は、事前に値を知ることができない**動的APIです。これを使用すると、リクエスト時に動的レンダリング**がオプトインされます。searchParams
は通常のJavaScriptオブジェクトであり、URLSearchParams
のインスタンスではありません。
例
params
に基づいたコンテンツの表示
動的ルートセグメントを使用して、params
プロパティに基づいてページの特定のコンテンツを表示またはフェッチできます。
searchParams
でのフィルタリング処理
searchParams
プロパティを使用して、URLのクエリ文字列に基づいてフィルタリング、ページネーション、またはソートを処理できます。
クライアントコンポーネントでのsearchParams
とparams
の読み取り
async
にできないクライアントコンポーネントでsearchParams
とparams
を使用するには、Reactのuse
関数を使用してPromiseを読み取ることができます:
バージョン履歴
バージョン | 変更点 |
---|---|
v15.0.0-RC | params とsearchParams が現在Promiseになっています。コードモッドが利用可能です。 |
v13.0.0 | page が導入されました。 |