suspense 的核心是自动等待 #default 插槽内所有异步依赖(多组件、async setup、子组件 promise)全部完成;应将并发请求分散至各子组件的 async setup 或 defineasynccomponent 中,由 suspense 统一聚合等待,避免父组件手动 promise.all。

Suspense 的核心能力之一,就是自动等待它 #default 插槽内整个组件树中所有异步依赖完成——包括多个异步组件、多个 async setup()、甚至子组件内部的 Promise。它不是“等一个”,而是“等全部”。所以处理多个并发请求,关键不在手动合并 Promise,而在于让它们自然落入 Suspense 的等待范围。
确保所有异步逻辑都发生在 #default 插槽内部
Suspense 只对包裹在 #default 中的内容生效。只要把需要并发加载的组件或逻辑都放在这里,它就会自动聚合等待。
- 不要在父组件的 setup 或 data 中提前 await 多个接口——那会阻塞整个组件挂载,失去 Suspense 的声明式优势
- 每个子组件应各自负责自己的异步逻辑(比如用 async setup 或 defineAsyncComponent),然后统一被 Suspense 包裹
- 例如:订单页同时加载订单信息、商品列表、物流进度,就分别用三个独立的异步子组件,一起放进 #default
用 defineAsyncComponent 动态导入 + 内部异步数据获取
这是最常见也最推荐的方式:组件本身异步加载,内部再发起数据请求。Suspense 会同时等待组件代码下载和 setup 中的 Promise。

