在使用 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.

参考:
[Vue warn]: <Suspense> slots expect a single root node.

Logo

前往低代码交流专区

更多推荐