Next.jsのApp Routerでサーバーサイドでクエリパラメータと動的パスを取得する
2024/10/07 (月) - 10:00 JavaScript
前回はクライアントコンポーネントで動的パスやクエリパラメーターを取得しましたが、今回はサーバーサイド(サーバーコンポーネント)で取得する場合の方法。下記のコードでサーバーサイド(SSR)で動作するようです。例として/[slug]/page.js
という動的ルーティングのファイルを作成して、/taro/?id=10
にアクセスした場合。
export default function Page(props) {
const slug = props.params.slug;
const pram = props.searchParams.id;
return (
<main>
<p>パスは、<i>{slug}</i>です。</p>
<p>GETパラメータは、<i>{pram}</i>です。</p>
</main>
);
}
params
で動的パス、searchParams
でクエリパラメータを取得できました。
応用編。気象庁のAPIを取得表示するサンプル。http://localhost:3000/130000/
にアクセスしたら東京都の気象情報を表示する…的な。
const getData = (slug
) => fetch(`https://www.jma.go.jp/bosai/forecast/data/overview_forecast/${slug
}.json`).then((res) => { return res.json()});
export default async function Page(props) {
const slug
= props.params.slug
;
const data = await getData(slug
);
return (
<main>
<p>{data.targetArea}の天気は{data.targetArea}です</p>
</main>
);
}
おしまい♥
タグ:Next.js
おすすめ記事
- [CSSのみ]View Transitions APIで画面遷移アニメーションの実装
- npmのキャッシュクリアとメンテナンス
- JavaScriptでCSVファイルを読み込み、表として表示する
- Next.js(App Router)で、Fetch APIを使った静的ファイル生成(SSG)でヘマした
- Next.jsのApp Routerでクエリパラメータ(GETパラメータ)と動的パスを取得
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/nextjs_ssr_pram/trackback/