本文最后更新于:2024年4月25日 上午
Vue
内置的<Transition>
与<TransitionGroup>
组件可以方便的为组件插入CSS动画
v-if
,v-show
,<component :is="xxx" />
组件应用<Transition>
包裹
v-for
组件应用<TransitionGroup>
包裹
Transition组件
当<Transiton/>
没有name
属性时
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| .<name>-enter-from { }
.<name>-leave-to { }
.<name>-enter-active { }
.<name>-leave-active { }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <script setup> import { ref } from 'vue'
const visible = ref(true)
function changeVisible() { visible.value = !visible.value } </script>
<template> <Transition> <h1 :v-show="visible" @click="changeVisible" > Hello World! </h1> </Transition> </template>
<style scoped>
</style>
|
还可用CSS
animation属性设置动画
1 2 3 4 5 6 7 8 9 10 11 12
| .<name>-enter-active { animation: enter .5s; }
@keyframs enter { from { opcity: 0; } to { opcity: 1; } }
|
TransitionGroup组件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <script setup>
</script>
<template> <TransitionGroup name="list" tag="ul"> <li v-for="item in List" :key="item.id"> {{ item.title }} </li> </TransitionGroup> </template>
<style scoped>
</style>
|