개발/Vue.js
[Vue 스터디 #7] Transition
TutleKing
2025. 2. 3. 21:47
Transition
- vue에서 제공하는 기본 애니메이션 컴포넌트
- v-if, v-show, component 토글(?)에 의해서만 동작됨
<script>
export default {
data() {
return {
show: true
}
}
}
</script>
<template>
<button @click="show = !show">토글</button>
<Transition>
<p v-if="show">안녕</p>
</Transition>
<Transition name="other">
<p v-if="!show">안녕 반대</p>
</Transition>
</template>
<style>
.other-enter-from {
transform: translateY(-30px);
}
.other-enter-to {
transform: translateX(10px);
}
.other-enter-active,
.other-leave-active {
transition: all 0.5s ease;
}
.v-enter-active,
.v-leave-active {
transition: opacity 0.5s ease;
}
.v-enter-from,
.v-leave-to {
opacity: 0;
}
</style>
TransitionGroup
- 컴포넌트가 v-for 을 통해 목록에 삽입, 제거등을 실행할 때 사용되는 애니메이션 컴포넌트
- v-for 안의 요소에
TransitionGroup
를 추가해야 적용 가능<script>
const getInitialItems = () => [1, 2, 3, 4, 5]
let id = getInitialItems().length + 1
export default {
data() {
return {
items: getInitialItems()
}
},
methods: {
insert() {
const i = this.items.length +1;
this.items.push(i)
},
reset() {
this.items = getInitialItems()
id = getInitialItems().length + 1
}
}
}
```
반응형