vue中的列表过度原理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Vue中的列表过渡</title>
<script src='./vue.js'></script>
<style>
.v-enter, .v-leave-to{
opacity: 0;
}
.v-enter-active, .v-leave-active{
transition: opacity 1s;
}
</style>
</head>
<body>
<div id="root">
<transition-group>
<div v-for="item of list" :key="item.id">
{{item.title}}
</div>
</transition-group>
<button @click="handleBtnClick">Add</button>
</div>
<script>
var count = 0
var vm = new Vue({
el:"#root",
data:{
list:[]
},
methods:{
handleBtnClick:function(){
this.list.push({
id: count++,
title:'hello world'
})
}
}
})
</script>
</body>
</html>
div列表循环后会变成多个div 然后在多个div外边加一个transition-group标签 相当于在每个div标签都单独加了transition标签 这样就相当于把列表的过渡转化为单个元素的过渡了 每一个单个元素的过度 vue会在这个元素隐藏或者显示的时候动态的找到时间点 增加一些对应的class的名字 而恰好又写了v-enter、v-leave-to、v-enter-active、v-leave-active这些class的名字所对应的css内容 那么我们每一个列表上就有自己的动画
- 还没有人评论,欢迎说说您的想法!