- 实现步骤:
- 创建过渡组件:使用Vue的
<transition>
和<transition - group>
组件。<transition - group>
用于列表这种多个元素过渡的场景。
- 定义过渡样式:利用CSS的
transition
或animation
属性来定义滑入、滑出、淡入淡出等动画效果。
- 绑定数据和过渡:在Vue模板中,将列表数据与
<transition - group>
组件结合,通过v - for
指令渲染列表项,并设置合适的key
值,以帮助Vue识别每个列表项。
- 核心代码:
<template>
<div>
<button @click="addItem">添加项</button>
<button @click="removeItem">删除项</button>
<button @click="updateItem">修改项</button>
<transition - group name="list - transition" tag="ul">
<li v - for="(item, index) in list" :key="index">
{{ item }}
</li>
</transition - group>
</div>
</template>
.list - transition - enter - from,
.list - transition - leave - to {
opacity: 0;
transform: translateX(100%);
}
.list - transition - leave - from,
.list - transition - enter - to {
opacity: 1;
transform: translateX(0);
}
.list - transition - move {
transition: transform 0.3s ease - in - out;
}
export default {
data() {
return {
list: [1, 2, 3]
};
},
methods: {
addItem() {
this.list.push(this.list.length + 1);
},
removeItem() {
if (this.list.length > 0) {
this.list.pop();
}
},
updateItem() {
if (this.list.length > 0) {
this.list[0] = this.list[0] + 1;
}
}
}
};