useLazyAsyncData
这个 `useAsyncData` 的封装器会立即触发导航。
描述
默认情况下,useAsyncData
会阻止页面导航,直到其异步处理器执行完毕。
而 useLazyAsyncData
是 useAsyncData
的封装形式,通过设置 lazy
选项为 true
,在处理器尚未完成时就会触发页面导航。
useLazyAsyncData
与 useAsyncData
拥有相同的函数签名。示例
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
的函数。