<!--一定保证key的唯一性-->
<div class='box'>
	<transition-group name="list" tag="div" mode="out-in" >
		<div v-for="item in items" v-bind:key="item" class="list-item">{{ item }}</div>
	</transition-group>
</div>

data () {
	return {
		items: [1, 2, 3],
		nextNum: 10,
	}
}

loop () {
this.items.splice(0, 0, this.nextNum++)
this.items.length = 4
},

// mounted
this.interval = setInterval(() => {
	this.loop()
}, 3000)

// css

.list-item {
  transition: all 1s;
  margin-bottom: 20px;
}
.list-enter-active, .list-leave-active {
  transition: all 1s;
}
.list-enter{
  opacity: 0;
  transform: translateY(-30px);
}
.list-leave-to{
  opacity: 0;
  transform: translateY(30px);
}

03-25 12:29