Vue transition过渡组件怎么用

    一、vue里面的transition组件

    Vue提供了这个transition组件,可以使得在v-if条件渲染、v-show条件显示、动态组件的时候可以给到任意元素和组件添加了进入或离开元素过渡

    二、transition组件应用CSS过渡

    在应用css过渡的时候,transition组件会在恰当的时候添加、删除元素。我们的transition组件包含了一下6类过渡类别;

    • v-enter:定义在进入过渡的时候,元素在插入之前生效,在元素被插入之后的下一帧溢出。

    • v-enter-active:在定义的时候,在过渡生效的状态,在整个进入过渡的阶段中应用,在元素被插入前生效,在过渡完成之后移除。

    • v-enter-to:定义进入过渡的结束状态,在元素被插入之后下一帧生效,过渡完成后移除。

    • v-leave:定义在离开过渡的开始状态,在离开过渡被触发的时候立刻生效,下一帧就会被移出。

    • v-leave-active:在定义离开的过渡生效时状态。

    • v-leave-to:定义在离开过渡的结束状态。

    我们总结的这6个过渡类,前三个是进入过渡的类,后面三个是离开过渡的类,在进入或者离开的过程中,这里6个过渡类之间相互切换。

    (1)单元数/组件过渡

    在transition组件中只会包含一个元素,在这个元素插入或者删除的时候定义过渡。我们可以通过一行代码段进行了解一下:

    实例代码:

    <!DOCTYPE html><html lang="en"><head>    <title>动态</title></head><body>    <div id="app"><input type="checkbox" v-model="guodu" id="game"/><label for="game">我已经知晓未成年人游戏时间公告</label><transition name="fade">    <p v-if="guodu"><button>开始游戏</button></p></transition>    </div>    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><script>    var vm = new Vue({        el:"#app",        data:{guodu:false}    });</script><style>    .fade-enter,    .fade-leave-to {        opacity: 0;        transform: translateX(100px);    }    .fade-enter-active,    .fade-leave-active {        transition: all 2s;    }</style></body></html>

    运行结果:我们可以看到但单击选中“我已知晓王者未成年人游戏时间公告”的复选框,然后就会在页面上淡出我们的“开始游戏”,但我们在取消勾选的时候,“开始游戏”就会淡出我们的页面。

    Vue transition过渡组件怎么用

    因为我们的组件设置了name=“fade”,然后可以在定义样式的时候用到fade的前缀,如代码中的.fade-enter等等,这样定义好样式以后,就不用进行手动引入了,transition组件就可以将我们“开始游戏”按钮的元素恰到好处的添加以及删除操作。

    (2)多个元素过渡

    transition组件包含多个元素,这一些元素在插入或者删除的时候就可以定义过渡。我们还是通过代码了解一下,不用大肆修改,其他的代码就不用修改了,我们只要在前面的单个元素部分的章节上面进行修改就可以了。

    实例代码:

    <!DOCTYPE html><html lang="en"><head>    <title>动态</title></head><body>    <div id="app"><input type="checkbox" v-model="DGguodu" id="game"/><label for="game">我已经知晓未成年人游戏时间公告</label><transition name="fade" appear mode="out-in">    <p v-if="DGguodu" key="1"><button>开始游戏</button></p>    <p v-else key="2">先阅读公告后进行游戏</p></transition>    </div>    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><script>    var vm = new Vue({        el:"#app",        data:{DGguodu:false}    });</script><style>    .fade-enter,    .fade-leave-to {        opacity: 0;        transform: translateX(100px);    }    .fade-enter-active,    .fade-leave-active {        transition: all 2s;    }</style></body></html>

    运行结果:

    Vue transition过渡组件怎么用

    我们看到上面结果,我们可以理解一下,为什么会出现上面这样的结果呢,因为我们将transition设置成了appear模式属性,这个属性用于设置节点在初始渲染的时候也应用过渡的效果。当我们选择复用框的时候,“先阅读…..”这一段话就会淡出,“开始游戏”就会淡入。这是因为我们给mode设置成了out-in,mode属性用来设置过渡模式。

    (3)多个组件过渡

    多个组件的过渡比多个元素过渡更加的简单,因为他不像元素过渡的时候使用到key属性,只需要使用动态组件即可。我们还是通过实例代码的结果来加深了解一下:

    实例代码:

    Vue transition过渡组件怎么用

    (4)列表过渡

    列表过渡使用的是transition-group组件,不同于transition这个组件的是,transition-group这个组件含有更多的属性特性,比如:mode属性不可用、内部只能含有一个key属性、css过渡得嘞将会应用在内部元素、渲染的时候以一个真实的元素呈现。我们通过代码进行了解一下这个列表过渡:

    实例代码:

    <!DOCTYPE html><html lang="en"><head>    <title>列表过渡</title></head><body>    <div id="app">        <h2>2022届大学生新生入学登记:</h2><form>    <p><label for="name">姓名:</label>    <input type="text" v-model="stuInfo.name" id="name"></p>    <p><label for="xuehao">学号:</label>    <input type="xuehao" v-model="stuInfo.xuehao" id="xuehao"></p><p><button @click="add" type="button">添加</button></p></form><transition-group tag="ul" name="fade">    <li v-for="(item,index) in students" :key="item.xuehao">{{index+1}}--{{item.name}}--{{item.xuehao}}<button @click="del(index)">删除</button>    </li></transition-group>    </div>    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><script>    var vm = new Vue({        el:"#app",        data:{            stuInfo:{xuehao:"  "},            students:[]        },        methods:{            add(){                this.students.push(this.stuInfo);                this.stuInfo={};            },            del(index){this.students.splice(index,1);}        }    });</script><style>    .fade-enter,    .fade-leave-to {        opacity: 0;        transform: translateX(100px);    }    .fade-enter-active,    .fade-leave-active {        transition: all 2s;    }</style></body></html>

    运行结果:

    Vue transition过渡组件怎么用

    我们这里已经将-group的组件设置成了tag=’ul’,这样使得每列表项li元素的key属性值数据中的xuehao的属性值,确保它的属性值是少数的属性。结果如上,效果就不多说了,大家观看即可。

    三、JavaScript钩子

    JavaScript的钩子函数可以使用transition组件里面的v-on指令绑定,transition过渡的周期可以有以下钩子函数:

        <transition v-on:before-enter="beforeEnter"    v-on:enter="enter"    v-on:after-enter="afterenter"    v-on:enter-cancelled="entercanclled"    v-on:before-leave="beforeLeave"    v-on:leave="leave"    v-on:after-leave="afterLeave"    v-on:leave-cancelled="leaveCancelled"    >    </transition>

    实例代码:

    <!DOCTYPE html><html lang="en"><head>    <title>钩子函数实现动画</title></head><body>    <div id="app">        <input type="checkbox" v-model="already" id="ck"/>        <label for="ck">我已经阅读了相关的报名需求</label>        <transition          @before-enter="beforeEnter"         @enter="enter"         @after-enter="after-enter"        >    <p class="show" v-if="already"><button>确定报名</button></p></transition>    </div>    <script src="http://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script><script>    var vm = new Vue({        el:"#app",        data:{already:false        },        methods:{            beforeEnter:function(el){                el.;console.log("beforeEnter");            },            enter:function(el,done) {                el.offsetHeight;                el.style = "opacity:1";                console.log("enter");                done();            },            afterEnter:function(el){                console.log("afterEnter");            }        }    });</script><style>    .show {        transition: all 2s;    }</style></body></html>

    运行结果:

    Vue transition过渡组件怎么用

    我们可以看到单击复选框的时候,“确认报名”就会慢慢的显示出啦,而且取消勾选不会淡出!

    “Vue transition过渡组件怎么用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

    文章标题:Vue transition过渡组件怎么用,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/21201

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    亿速云亿速云认证作者
    上一篇 2022年8月27日 下午5:03
    下一篇 2022年8月29日 下午11:44

    相关推荐

    • vlookup函数多条件查找怎么使用

      vlookup函数多条件查找使用方法 方法一: 1、借助“if命令”可以同时筛选多个条件。 2、在这里,我们需要同时满足“姓名”和“工号”两个条件。 3、这时候,我们使用vlookup函数,先选定“E5&F5”作为条件。 4、接着使用if命令,让后面的调节需要满足姓名和工号两个条件。 5、使…

      2022年9月22日
      1.3K00
    • vlookup函数列序表v不出来如何解决

      解决方法 1、首先,匹配模式一般选择“精确匹配”,只有特殊情况才要用近似匹配。 2、如果你发现自己使用的近似匹配,例如函数最后为“true”或“1”就要更改。 3、其次,需要确保你的表格中没有空格。 4、我们可以使用替换功能,将所有空格全部替换成无。 5、最后,还要保证结果和查找数据的格式是一样的。…

      2022年9月22日
      32200
    • 如何深度分析宽字节sql注入

      基本概念 宽字节是相对于ascII这样单字节而言的;像GB2312、GBK、GB18030、BIG5、Shift_JIS等这些都是常说的宽字节,实际上只有两字节 GBK是一种多字符的编码,通常来说,一个gbk编码汉字,占用2个字节。一个utf-8编码的汉字,占用3个字节 转义函数:为了过滤用户输入的…

      2022年9月21日
      32600
    • Redis实现分布式锁的五种方法是什么

      1. 单机数据一致性 单机数据一致性架构如下图所示:多个可客户访问同一个服务器,连接同一个数据库。 场景描述:客户端模拟购买商品过程,在Redis中设定库存总数剩100个,多个客户端同时并发购买。 @RestControllerpublic class IndexController1 { @Aut…

      2022年9月15日
      19100
    • jquery如何获取元素有几个子元素

      在jquery中,可以利用children()方法配合length属性来获取元素有几个子元素;children()方法可以返回被选元素的所有子元素,length属性可以获取包含jquery对象中元素的数目,语法为“$(指定元素).children().length;”。 本文操作环境:windows…

      2022年9月10日
      62900
    • windows deepl如何使用

      deepl使用方法 1、首先我们下载好deepl软件到本地,解压缩包。 点击exe程序,打开。 2、然后我们就打开这个软件了。 3、这里我们可以注册一个账号,也可以直接跳过去直接登录。 4、点击“开始翻译”就可以正式使用了。 关于“windows deepl如何使用”这篇文章的内容就介绍到这里,感谢…

      2022年9月26日
      36800
    • Sql注入bypass的示例分析

      waf是如何防御的 waf是通过使用一组规则来区分正常请求和恶意请求的。例如:安全狗、云锁、D盾等。 绕过:既然是存在规则匹配,那么就可以想方法绕过规则匹配。比如常见的黑名单限制,黑名单模型使用预设 一、sql注入bypass 环境搭建 win7 phpstdy(mysql:5.7.0 php:5.…

      2022年9月6日
      62000
    • 如何进行移动app安全评估检测技术分析

      由于现今的网络技术日益发达,安卓 APP 的安全也有很多隐患,这些都需要我们不断地去注意,从而提高其安全性。人们基于系统程序、系统数据、基础业务的安全性以及应用程序出现的漏洞这几个方面,来不断地完善并且构成一个更加安全、稳定、完整的移动 APP 监测系统来确保移动 APP 的安全性,其将作为“恶意伤…

      2022年9月15日
      39700
    • SQLMAP的洋葱模式代理是怎样的

      由于要对外网的网站进行渗透测试,但是大部分网站都有访问频率控制,一旦超过这个频率就直接禁IP。尤其是SQLMAP跑的时候,更是一片“姨妈红”,还没跑完SQLMAP就直接报错退出。 于是就开始研究SQLMAP的代理模式,SQLMAP有两种代理模式,一种是普通代理(HTTP代理),一种是洋葱代理。 我原…

      2022年9月15日
      34600
    • transform在CSS中的含义是什么

      在CSS中,transform的意思为改变、变形,主要用于设置元素的形状改变,实现元素的2D或3D转换;该属性可以配合属性值(转换函数)来对将元素进行旋转rotate、扭曲skew、缩放scale、移动translate以及矩阵变形matrix。 本教程操作环境:windows7系统、CSS3&am…

      2022年9月22日
      33600
    站长微信
    站长微信
    电话联系

    400-800-1024

    工作日9:30-21:00在线

    分享本页
    返回顶部