在vue2中,规定每个组件只能存在一个根节点,多出的节点会报错
但在vue3中,每个组件可以存在多个根节点,但需要自己显式定义attribute应该分布在哪里
attribute和property
简单来说,attribute是元素标签的属性,property是元素对象的属性
非props的attribute:即父组件定义了自定义函数emit或传递了数据,但子组件没有接收props和使用emit来使用父组件的自定义函数或没有完全接收数据,那么这些传递给子组件的emit和props就会被保存在attribute中
当组件根节点是单个根节点时,attribute会自动添加到根节点上,当存在多个根节点时,可以使用v-bind="$attrs"来指定将attribute添加到某个根节点($attrs 包含所有的 attribute,包括style和class,这使得把它们全部应用到另一个元素上更加容易)
指定根节点传递$attrs
网友评论