在使用 Vite 框架或者 Vue3 的 Suspense 标签时,我们可能会见到如下报错:
runtime-core.esm-bundler.js:38 [Vue warn]: slots expect a
single root node. at <Home onVnodeUnmounted=fn
ref=Ref< Proxy {__v_skip: true} > > at at
这是因为 Suspense 标签是 Vue3 的新特性,如果有多组件嵌入时需要给每个组件一个 div 标签,正确格式如下:
<suspense>
<template #fallback>
<div class="loading">
<loading></loading>
</div>
</template>
<template #default>
<div>
<HomeAsync/>
</div>
</template>
</suspense>
Suspense 是一个试验性的新特性,其 API 可能随时会发生变动。特此声明,以便社区能够为当前的实现提供反馈。
生产环境请勿使用。
Suspense is an experimental feature and its API will likely
change.