useLazyFetch

这个围绕 useFetch 的包装器会立即触发导航。

描述

默认情况下,useFetch 直到其异步处理函数被解析后才会阻塞导航。useLazyFetch 提供一个包装器,它通过将 lazy 选项设置为 true 来在处理函数被解析之前触发导航,它是对 useFetch 的包装。

useLazyFetch 具有与 useFetch 相同的签名。
Awaiting useLazyFetch in this mode only ensures the call is initialized. On client-side navigation, data may not be immediately available, and you should make sure to handle the pending state in your app.
Read more in Docs > 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'">
    加载中 ...
  </div>
  <div v-else>
    <div v-for="post in posts">
      <!-- 做某事 -->
    </div>
  </div>
</template>
useLazyFetch 是一个由编译器转换的保留函数名,因此你不应该将你的函数命名为 useLazyFetch
Read more in Docs > Getting Started > Data Fetching.