vue--transition-group

1.为什么要使用<transition-group>

<transition></transition>是vue封装的过渡组件

<transition name="fade" mode="out-in"> //mode="out-in"模式先出后进
    <router-view></router-view>
</transition >

css

.fade-enter-active, .fade-leave-active {
  transition: opacity .4s
}
.fade-enter,.fade-leave-to {
  opacity: 0
}

这个组件里只有一个元素,当我们在其里面多加一具元素时,发生了什么

浏览器里并不出现新加的内容。这是为什么?因为在vue里,<transition></transition>里只能放置一个元素

但是如果我们想在一个过渡效果里放置多个元素时,怎么办

用<transition-group></transition-group>

2.<transition-group>的key属性

当我们将<transition></transition>改成<transition-group></transition-group>,发现控制台里依然有错误提示—当<transition-group>里有多个元素时,需要给每个元素设置key值,并且每个key值是不能一样的。设置完后,页面就恢复正常了。

<transition-group name="fade" mode="out-in">
    <router-view key="aa"></router-view>
    <div key="bb">merry christmas</div>
</transition-group>

3.<transition>和<transition-group>的区别

<transition>里只能包裹一个元素

<transition-group>可以包裹多个元素

4.使用<transition-group>需要注意的点是

包裹的元素必须要设置key值

Key值不能设置成一样的

转载于:https://www.cnblogs.com/vinieo/p/10178587.html

`vue-transition-group`是Vue.js的官方动画库,它提供了一组基础的CSS类用于实现元素的进出和切换动画。以下是使用`vue-transition-group`的一个简单示例: 首先,在你的Vue组件安装`vue-transition-group`,如果还没有安装,可以在`main.js`或其他适当的地方添加: ```bash npm install vue@next vue-transition-group # 或者 yarn add vue@next vue-transition-group ``` 接着,将`TransitionGroup`组件导入到你的组件文件,并在需要动画的元素上使用`v-enter`, `v-enter-active`, `v-leave-to`, 等修饰符: ```html <template> <div id="app"> <transition-group tag="ul" name="list-animation"> <li v-for="(item, index) in items" :key="index"> {{ item }} <button @click="removeItem(index)">Remove</button> </li> </transition-group> </div> </template> <script> import { transitionGroup } from 'vue-transition-group'; export default { components: { TransitionGroup, }, data() { return { items: ['Item 1', 'Item 2', 'Item 3'], }; }, methods: { removeItem(index) { this.items.splice(index, 1); }, }, }; </script> <style scoped> .list-animation-enter-active, .list-animation-leave-active { transition: opacity 0.5s; } .list-animation-enter, .list-animation-leave-to { opacity: 0; } </style> ``` 在这个例子,当点击删除按钮时,对应的列表项会淡入(enter)或淡出(leave),并且在删除过程有一个过渡动画。你可以调整`.list-animation-enter-active` 和 `.list-animation-leave-active` 的样式属性来自定义动画速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值