template 多个根节点
Vue3 现在支持多个根节点的组件了。
Vue2 语法
在 Vue2 中,需要额外用一个 div 包裹着组件,通常来说还要给这个 div 添加一个 class,这样就会多出一层无用的 DOM 节点。
vue
<template>
<div>
<header></header>
<main></main>
<footer></footer>
</div>
</template><template>
<div>
<header></header>
<main></main>
<footer></footer>
</div>
</template>Vue3 语法
在 Vue3 中,组件可以包含多个根节点,这样就不需要额外的 div 包裹了。但是必要的时候要通过 $attrs 来接收父组件传递的原生属性,具体是如何接收的可以阅读 透传 Attributes
vue
<template>
<header></header>
<main v-bind="$attrs"></main>
<footer></footer>
</template><template>
<header></header>
<main v-bind="$attrs"></main>
<footer></footer>
</template>