2

我仍然对我在这里做错了什么感到有些困惑。本质上,我有一个 vue 组件,我想在安装元素后异步加载一些数据。

我正在使用 NUXT 3 和组合 API。

<script setup>

let directories = useState('directories', () => null);

onMounted( async () => {
const { data: response } = await useAsyncData('directories', () => $fetch('/api/s3-get-directories'));
directories.value = response;
});

</script>

似乎 onMounted 在渲染之前触发并且没有正确接收数据。如果我将挂载到 setTimeout 并给出 100 毫秒的延迟,它可以正常工作。

我会很感激一个例子,说明我应该如何在客户端准备好后不阻塞地加载数据。或者对我在这里做错的任何解释。

4

1 回答 1

1

{ server: false }我在选项中失踪了

await useLazyAsyncData('directories', () => $fetch('/api/s3-get-directories'), { server: false });

这使得它只在前端运行,而不是在后端运行。

于 2021-12-27T17:06:24.087 回答