Transition Group Root Element 破壊的変更
Overview
<transition-group>
no longer renders a root element by default, but can still create one with the tag
attribute.
2.x Syntax
In Vue 2, <transition-group>
, like other custom components, needed a root element, which by default was a <span>
but was customizable via the tag
attribute.
html
<transition-group tag="ul">
<li v-for="item in items" :key="item">
{{ item }}
</li>
</transition-group>
3.x Syntax
In Vue 3, we have fragment support, so components no longer need a root node. Consequently, <transition-group>
no longer renders one by default.
- If you already have the
tag
attribute defined in your Vue 2 code, like in the example above, everything will work as before - If you didn't have one defined and your styling or other behaviors relied on the presence of the
<span>
root element to work properly, simply addtag="span"
to the<transition-group>
:
html
<transition-group tag="span">
<!-- -->
</transition-group>
Migration Strategy
Migration build flag: TRANSITION_GROUP_ROOT