前言
本笔记主要基于官方文档《迁移策略——Transition Group 根元素》汇总而来。如有理解出入,请以官方文档为主。建议您以官方文档为主,本文为辅。这样您可以“以自己为主”审视的阅读,从而不被我的观点带偏。
概述
<transition-group> 不再默认渲染根元素,但仍可以使用 tag prop创建一个根元素。
Vue 2.x 的<transition-group>
Vue 2.x <transition-group> 跟自定义组件一样,需要一个根元素。我们可以通过tag prop 来进行手动设定。如果我们不进行手动的设定,Vue 会默认添加<span>作为根元素。
<template>
<transition-group tag="ul">
<li v-for="item in items" :key="item">
{{ item }}
</li>
</transition-group>
</template>
<script>
export default {
data() {
return {
items: [1, 2, 3],
};
},
};
</script>
需要注意:
根元素的添加只能通过
tagprop 添加。下面做法是无效的:<transition-group> <ul> <li v-for="item in items" :key="item"> {{ item }} </li> </ul> </transition-group>最终,Vue 还是会用一个
<span>元素包裹<ul>
Vue 3.x <transition-group> 不再需要根元素
到了 Vue 3.x,Vue 不再需要添加根元素。但是我们仍可以通过tag prop 来进行手动设定根元素。只是如果我们不主动设置,Vue 不再会自动添加<span>根元素了。
- 如果您已经
tag在Vue 2代码中定义了prop,就像上面的示例一样,一切将像以前一样工作 - 如果您没有定义一个样式,而您的样式或其他行为依赖于
<span>根元素的存在才能正常工作,则只需添加tag="span"到<transition-group>:
<transition-group tag="span">
<!-- -->
</transition-group>
本系列目录
版权声明:本文为weixin_44869002原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。