使用tag属性把vue组件标签渲染成html原生标签, tag属性和is属性功能恰好相反
<style>
.v-enter, .v-leave-to{
transform: translate(300px); opacity: 0;
}
.v-enter-active, .v-leave-active{
transition: 1s;
}
.v-enter-to, .v-leave{
transform: translate(0); opacity: 1;
}
</style>
</head>
<body>
<script src='https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js'></script>
<div id='myApp'>
<button @click='list.push(count++)'>增加</button>
<button @click="list.shift()">删除</button>
<!-- transition-group 用于对多个标签的添加或删除实现动画效果 -->
<!-- 列表li要求父标签是ul,所以使用tag属性把vue组件标签渲染成html原生标签, tag属性和is属性功能恰好相反 -->
<transition-group tag="ul">
<li v-for="item,i in list" :key="item">
{{item}}-{{item}}-{{item}}-{{item}}
</li>
</transition-group>
<!-- transition-group 中的v-for循环必须添加key属性, 可以属性值有两个要求
1: 唯一性, 循环中每一个key值都是唯一的, 互补相同
2: 不变行, 循环中每一个标签对应的key应是固定的, 不能随数组变化而变化, 所以key值不能是数组索引值,因为数组长度发生变化时, 数组中数据的索引会更新 -->
</div>
<script>
new Vue({
el: '#myApp',
data: {
count: 0,
list: []
},
methods: {
}
})
</script>
</body>