You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3中多useAsyncData请求导致页面卡顿问题求助

解决useAsyncData多请求页面加载卡顿问题

问题描述

我需要通过useAsyncData同时发起多个请求,切换页面时无卡顿,但进入该页面时出现严重卡顿。尝试过官方文档里await Promise.all结合useAsyncData的方案,问题依旧;仅发起单个请求时运行正常。

代码示例:

const {data: stamps} = await useAsyncData(
'dataStamps',
() => $fetch(urls.stamp)
);

const {data: drivers} = await useAsyncData(
'dataDrivers',
() => $fetch(urls.driver)
);

优化方案

1. 取消同步等待,并行发起请求

不要用await逐个调用useAsyncData,也无需把它包装进Promise.all后等待。useAsyncData本身是异步组合式函数,直接并行调用,让Nuxt自动处理数据加载流程,避免阻塞页面初始渲染:

// 直接并行发起请求,不使用await
const { data: stamps } = useAsyncData('dataStamps', () => $fetch(urls.stamp))
const { data: drivers } = useAsyncData('dataDrivers', () => $fetch(urls.driver))

2. 配置请求的加载策略

根据页面需求调整useAsyncData的参数,减少服务端或客户端的阻塞:

const { data: stamps } = useAsyncData('dataStamps', () => $fetch(urls.stamp), {
  server: false, // 仅在客户端加载数据,避免服务端串行等待请求
  prefetch: true // 开启预取,提前加载数据
})

3. 拆分请求粒度

如果接口返回数据量过大,请求耗时过长,建议和后端配合拆分接口:只请求当前页面渲染必需的核心数据,非必要数据(比如非首屏内容)延迟到用户交互时再加载。

4. 排查请求本身的性能问题

用浏览器DevTools的Network面板查看每个请求的响应时间:如果单个请求耗时久,优先优化后端接口——比如添加缓存策略、优化数据库查询逻辑,从根源减少加载时间。

内容的提问来源于stack exchange,提问作者Vadimus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 14:44:53