useLazyAsyncData

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

描述

默认情况下,useAsyncData 会阻止页面导航,直到其异步处理器执行完毕。
useLazyAsyncDatauseAsyncData 的封装形式,通过设置 lazy 选项为 true,在处理器尚未完成时就会触发页面导航。

useLazyAsyncDatauseAsyncData 拥有相同的函数签名。
阅读更多 Docs > 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' ? '加载中' : count }}
  </div>
</template>
useLazyAsyncData 是一个保留函数名,会被编译器转换,因此不应该自定义名为 useLazyAsyncData 的函数。
阅读更多 Docs > Getting Started > Data Fetching.