nuxt logo

ドキュメント翻訳(非公式)

useLazyFetch

この useFetch のラッパーは、ナビゲーションを即座にトリガーします。

説明

デフォルトでは、useFetch は非同期ハンドラーが解決されるまでナビゲーションをブロックします。useLazyFetch は、lazy オプションを true に設定することで、ハンドラーが解決される前にナビゲーションをトリガーする useFetch のラッパーを提供します。

useLazyFetchuseFetch と同じシグネチャを持ちます。

このモードで useLazyFetch を待機することは、呼び出しが初期化されることのみを保証します。クライアントサイドのナビゲーションでは、データがすぐに利用可能でない場合があるため、アプリ内で保留状態を適切に処理する必要があります。

こちらも参照 api > composables > use-fetch

pages/index.vue
<script setup lang="ts">
/* フェッチが完了する前にナビゲーションが発生します。
 * コンポーネントのテンプレート内で 'pending' と 'error' の状態を直接処理します
 */
const { status, data: posts } = await useLazyFetch('/api/posts')
watch(posts, (newPosts) => {
  // posts は最初は null かもしれないので、
  // その内容にすぐにアクセスできないかもしれませんが、監視することはできます。
})
</script>

<template>
  <div v-if="status === 'pending'">
    Loading ...
  </div>
  <div v-else>
    <div v-for="post in posts">
      <!-- 何かをする -->
    </div>
  </div>
</template>

useLazyFetch はコンパイラによって変換される予約関数名であるため、自分の関数を useLazyFetch と名付けるべきではありません。

こちらも参照 getting-started > data-fetching