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
おすすめ記事
- sessionStorageやlocalStorageではBoolean使えないのね…
- 戻るボタンで広告が表示されるギミックを簡易的に実装する
- ReactをCDNで読み込み、外部JSONファイルをAjaxで取得してみた
- [React]入力フォームでフォーカスが外れたらエラーメッセージを出す、他
- Next.js13のApp Routerで404ページ作成&静的エクスポート
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/nextjs_ssr_pram/trackback/