nuxt logo

文档翻译(非官方)

useLazyAsyncData

这个 useAsyncData 的包装器会立即触发导航。

描述

默认情况下,useAsyncData 会阻止导航,直到其异步处理程序解析完成。useLazyAsyncData 提供了一个 useAsyncData 的包装器,通过将 lazy 选项设置为 true,在处理程序解析之前触发导航。

useLazyAsyncData 的签名与 useAsyncData 相同。

另请参阅 api > composables > use-async-data

示例

pages/index.vue
<script setup lang="ts">
/* 导航将在获取完成之前发生。
  直接在组件的模板中处理 'pending' 和 'error' 状态
*/
const { status, data: count } = await useLazyAsyncData('count', () => $fetch('/api/count'))

watch(count, (newCount) => {
  // 因为 count 可能一开始是 null,你无法立即访问其内容,但可以监听它。
})
</script>

<template>
  <div>
    {{ status === 'pending' ? 'Loading' : count }}
  </div>
</template>

useLazyAsyncData 是一个由编译器转换的保留函数名,因此不应将自己的函数命名为 useLazyAsyncData

另请参阅 getting-started > data-fetching