2025.08.28 ホームページ制作

Nuxt3でuseAsyncDataを自動的に再フェッチさせる

環境

  • Nuxt3(3.17.4)
  • TypeScript
  • SSG

課題

動的ページのパンくずリストを各ページのslugなどをキーにしてAPIからデータを取得、それを基に生成するようなやり方で実装していました。これに、「ページ遷移時にちゃんと切り替わってほしい」「SSGビルドした後はAPIリクエストが飛ばないようにしたい」という要件があったのですが、、🥵

const { data: breadCrumbs } = await useAsyncData(
  'breadcrumbs',
  async () => await getBreadCrumbList(),
);

watch(
  () => route.path,
  async ()=> {
    breadCrumbs.value = await getBreadCrumbList();
  },

脳直でルートをwatchしてました。良い子は真似しないでください。
これだと、SSGビルド後もページ遷移時にAPIリクエストが飛んでしまい、よくありません🙄 watchはクライアントサイドで実行されるので当たり前ですよねえ。。。。。

解決策

const { data: breadCrumbs } = await useAsyncData(
  () => `breadcrumbs-${route.fullPath}`,
  () => getBreadCrumbList(),
);

キーを動的にしたことで、ルートが変わると自動的にデータが再取得されるようになりました👏
SSGビルド後はビルド時のキャッシュが使われるため、実行時に新たなAPIリクエストは発生しません🥳

参考

ちゃんと公式のドキュメントに目を通しましょう…(自戒)
https://nuxt.com/docs/3.x/api/composables/use-async-data#reactive-keys

ホームページ制作のお問い合わせ、お見積り依頼、相談、質問は
お問い合わせフォームよりお願いいたします

ホームページ制作実績 東京のホームページ制作会社 フライング・ハイ・ワークス TOPへ

Web制作を検討する方へ まず知ってほしい考え方をまとめています。

Before
You
Start

進める前に整理しておきたい視点

検討初期の整理

検討を始めたばかりの方向けに、考え始める前に整理しておきたいポイントをまとめています。

Our
Approach

Web制作の考え方

判断軸の整理

UI/UXやデザインだけでなく、 Web制作をどう捉え、どう判断するかの考え方を整理しています。

Why
Flying
High
Works

FHWの特徴

相性判断・体制の確認

できること・できないこと、体制や進め方など、FHWという会社との相性を判断するための情報をまとめています。

How
the
Process
Works

Web制作の進め方

ご相談前の最終確認

整理から始める理由、体制・進行、対応範囲、費用、公開後の運用、相談についての考え方を確認できます。

ご相談前に知っておきたい
Web制作の考え方と進め方
お問い合わせ お問い合わせ
ページの先頭に戻る