24.VUE多标签过渡中key的使用


1.代码展示

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <style>
        .v-enter-active,.v-leave-active{
            transition: all 2s;
        }
        .v-enter,.v-leave-to{
            opacity: 0;
        }
    </style>
</head>
<body>
<div id="app">
    <!--过渡模块:in-out表示新元素先过渡,完成之后当前元素再消失,/out-in当前元素先过渡,完成之后再进入-->
    <transition mode="out-in">
        <!--过渡元素中的if else一定要设置不同的key去要求VUE来强制刷新,否则只能切换显示,不能把过渡效果展示出来-->
        <button type="button" v-if="show" @click="show=false" key="show">显示</button>
        <button type="button" v-else @click="show=true" key="hide">隐藏</button>
    </transition>
</div>
</body>
<script>
    let vm = new Vue({
        el: "#app",
        data: {
            show:true,
        },
        methods: {},
    });
</script>
</html>

2.key的使用

在这里插入图片描述

<transition mode="out-in">
        <!--过渡元素中的if else一定要设置不同的key去要求VUE来强制刷新,否则只能切换显示,不能把过渡效果展示出来-->
        <button type="button" v-if="show" @click="show=false">显示</button>
        <button type="button" v-else @click="show=true" >隐藏</button>
    </transition>

(1)如果没有设置key特性,那么点击按钮,页面并不会出现动画效果,只是简单地替换了文字。
(2)设置了key特性,没有设置 mode,那么一个元素的出现动画和另外一个元素的消失动画会同时在页面上面进行,看起来比较混乱。
(3)设置了key特性,也设置 mode,出现动画和消失动画会按顺序执行,效果正常
(4)mode取值
out-in:先让元素消失,然后让另一个元素出现。
in-out:先让元素出现,然后让另一个元素消失。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值