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
おすすめ記事
- JavaScriptでスマホの加速度センサーを使用する
- JavaScriptで雪を降らせる
- Next.jsとWordPressのREST APIで記事検索を実装する
- Astro+WordPress 記事検索ページをSSRで作る時のポイント
- sessionStorageやlocalStorageではBoolean使えないのね…
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/nextjs_ssr_pram/trackback/