喜获一金!全国锦标赛北京队再传佳音!
北京定向运动协会2023年3月26日,在大足区北山石刻景区举办的全国定向锦标赛接力赛项目中,北京队再获一枚金牌。成绩公告运动员们接棒瞬间M21
我们把一个对象从生成(new)到被销毁(destory)的过程,称为生命周期。而生命周期函数,就是在某个时刻会自动执行的函数。
按照官方的原话,就是每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
简单来说就是每个Vue实例在被创建时都要经过一系列的初始化过程:创建实例,装载模板,渲染模板等。Vue为生命周期中的每个状态都设置了钩子函数(监听函数) 。每当Vue实例处于不同的生命周期时,对应的函数就会被触发调用。
函数 | 调用时间 |
beforeCreate | vue实例初始化之前调用 |
created | vue实例初始化之后调用 |
beforeMount | 挂载到DOM树之前调用 |
mounted | 挂载到DOM树之后调用 |
beforeUpdate | 数据更新之前调用 |
updated | 数据更新之后调用 |
beforeDestroy | vue实例销毁之前调用 |
destroyed | vue实例销毁之后调用 |
下面是官方文档里的生命周期图,英语好的同学可以看看:
先看案例基本代码如下,后面通过如下代码步骤演示一个对象从生成到被销毁的过程各阶段执行的生命周期函数。注意show函数的作用。
(资料图片)
Document <script src="https://unpkg.com/vue/dist/vue.js"></script>{{information}}<script type="text/javascript"> //创建vue实例 var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" } }) // 各个生命周期函数通过调用下面这个函数了解其所处的生命阶段 function show(inf,obj){ console.log(inf); console.log("------------------------------------------"); console.log("获取vue实例data里的数据:"); console.log(obj.information); console.log("------------------------------------------"); console.log("挂载的对象,就是DOM:"); console.log(obj.$el); console.log("------------------------------------------"); console.log("页面上已经挂载的DOM:"); console.log(document.getElementById("app").innerHTML); } </script>
这个阶段vue实例刚刚在内存中创建,此时data和methods这些都没初始化好。
在案例中添加beforeCreate钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, beforeCreate: function(){ // 传入该阶段简介与this,this就是该阶段的vue实例 show("vue实例初始化之前",this); } })
看运行结果:
可以看到,此时vue实例刚刚在内存中创建,其它什么都undefined。
这个阶段vue实例在内存中已经创建好了,data和methods也能够获取到了,但是模板还没编译。
在案例中添加created钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, created: function(){ show("vue实例初始化之后",this); } })
看结果:
看到没,已经知道data里的数据了。其它的话都没。
这个阶段完成了模板的编译,但是还没挂载到页面上。
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, beforeMount: function(){ show("挂载之前",this); } })
看结果:
看到没,要挂载的对象都编译好了,但是页面的DOM树还没挂上去,这个阶段页面还没能显示出来。
这个阶段,模板编译好了,也挂载到页面中了,页面也可以显示了。
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, mounted: function(){ show("挂载之后",this); } })
看结果:
转态更新之前执行此函数,此时data中数据的状态值已经更新为最新的,但是页面上显示的数据还是最原始的,还没有重新开始渲染DOM树。
先改变data里数据:
vm.information = "南极光之夜";
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, beforeUpdate: function(){ show("更新之前",this); } })
看结果:
看到没,vue实例里的数据已经变成了南极光之夜。但是此阶段页面DOM节点上显示的还是初始的数据北极光之夜。
这个阶段是转态更新完成后执行此函数,此时data中数据的状态值是最新的,而且页面上显示的数据也是最新的,DOM节点已经被重新渲染了。
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, updated: function(){ show("更新之后",this); } })
看运行结果:
更新了,全都更新了~
beforeDestroy阶段处于vue实例被销毁之前,当然,这个阶段vue实例还能用。
销毁Vue实例:
vm.$destroy();
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, beforeDestroy: function() { show("销毁之前",this); } })
看效果:
这个阶段在vue实例销毁后调用,此时所有实例指示的所有东西都会解除绑定,事件监听器也都移除,子实例也被销毁。
在案例中添加钩子函数:
var vm = new Vue({ el: "#app", data: { information: "北极光之夜。" }, destroyed: function() { show("销毁之后",this); } })
看结果:
到此这篇关于一文搞懂Vue八大生命周期钩子函数的文章就介绍到这了,更多相关Vue八大生命周期钩子函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
关键词:
北京定向运动协会2023年3月26日,在大足区北山石刻景区举办的全国定向锦标赛接力赛项目中,北京队再获一枚金牌。成绩公告运动员们接棒瞬间M21
有點搞笑的版本Python是一門萬能語言,它適合寫那些煩人的程式作業,並且可以直接從網路上找到許多解答。如果你對人工智障機器人、機器學習生
1、肺癌病人久病,身体都很虚弱,肺癌的晚期症状会因病人的体质各异,肺癌晚期时病情已经恶化,需要及时对症治疗。2、纵隔位于
3月27日,截至收盘,景顺长城国证新能源车电池ETF联接C(015872)较前一交易日净值上涨0 28%,跑赢上证指数,单位净值为0 76,累计净值为0 757
3月27日,笔者从奇瑞新能源官方获悉,旗下奇瑞QQ冰淇淋、奇瑞小蚂蚁以及奇瑞无界Pro的指导价现已完成调整,最高降幅9000元。值得一提的是,三
下载地址:https: www elastic co cn downloads elasticsearch
中红医疗30098103月18日在投资者关系平台上答复了投资者关心的问题投资者贵司如此大体量是否拥有自己的货运代理公司货代毛利较高如能自己与船
皮肤黑的人穿正装才能显得白。比如黑色和红色。但是当你穿红色的时候,你需要把它和其他衣服搭配起来,以显示白色。健康的黑皮肤
投资达900亿元2023年山东计划实施重点文旅项目超300个---3月27日,2023山东省旅游发展大会工作会议在青岛举行。记者在会上了解到,2023年计划
1、鬼畜攻帝王攻年下攻年上攻强气攻总攻隠れ鬼畜攻玩具攻王样攻无邪气攻强气攻好人攻へたれ攻攻寄リバ等等总攻:不论对象是谁,
大家好,小太来为大家解答以上问题。强科技端牢“中国饭碗”很多人还不知道,现在让我们一起来看看吧!1、想必大家现在对于强科技端牢“中国饭
1、寒蝉里多少是有一些血X腥场景的,哔哩哔哩要播放就会打码(黑雾),或者删减处理。2、无修版就没有后期处理,也没有删减剧
3月28日,常青科技(603125 SH)将以25 98元的发行价正式开启新股申购。公开资料显示,自成立以来,常青科技一直专注于精细化工品中的高分子新
带个人情绪?欧文谈4连败:对手把击败我当成大事!总是被针对,对手,东契奇,达拉斯,独行侠,美国篮球,凯里·欧文,国际篮球赛事,澳大利亚篮球,奥
1、普华永道咨询(深圳)有限公司天津分公司于2001年11月29日成立。2、法定代表人崔志义,公司经营范围包括:从事各类
Copyright 2015-2022 时代双创网 版权所有 备案号: 联系邮箱: 514 676 113@qq.com
英飞拓(002528.SZ)近日走出大涨大跌的过山车行情 今日一字板跌停
英飞拓(002528 SZ)近日走出大涨大跌的过山车行情,此前走出3连涨停创下阶段新高,今日一字板跌停,录得连续2日跌停,大幅回吐此前涨幅,现
京基智农(000048.SZ)再度跌超6% 总市值失守百亿元大关
昨日跌停的京基智农(000048 SZ)再度跌超6%,盘中低见16 5元创5个月新低,总市值失守百亿元大关。公司控股股东京基集团7月4日通过大宗交易方
随着全光网络越织越密 如何进一步增强消费者和产业界的“获得感”?
近年来,在5G和宽带双千兆牵引下,新项目、新试点、新应用层出不穷。随着全光网络越织越密,如何进一步增强消费者和产业界的获得感?湖北日