vue生命周期实例小结
本文实例分析了vue生命周期。分享给大家供大家参考,具体如下:
每个vue实例都存在完整的生命周期,经历从创建、初始化数据、编译模板、挂载dom、渲染→更新→渲染、销毁等一系列过程。如下图所示
钩子函数
vue的完整生命周期可分为三个阶段:初始化阶段、运行阶段和销毁阶段。共存在很多钩子函数,他们在vue生命周期不同的阶段进行操作,列举如下:
- beforecreate
- created
- beforemount
- mounted
- beforeupdate
- updated
- beforedestroy
- destroyed
钩子函数说明
- beforecreate
通过new vue() 创建vue实例,vue的生命周期便拉开了序幕,首先会执行beforecreate钩子函数。此时的vue实例只是一个空壳,还未挂载dom元素,无法访问到数据和真实的dom,一般不做操作。
- created
这个时候已经可以使用到数据,也可以更改数据,在这里更改数据不会触发updated函数和不会触发其他钩子函数,一般可以在这里做初始数据的获取。
- beforemount
在这个函数中虚拟dom已经创建完成(马上就要渲染),这里也可以更改数据,不会触发updated,在这里可以在渲染前最后一次更改数据的机会,不会触发其他的钩子函数。
- mounted
在这个函数调用时,组件已经出现在页面中,数据、真实dom都已经处理好了,事件都已经挂载好了,可以在这里操作真实dom等事情。
- beforeupdate
当组件或实例的数据更改之后,会立即执行beforeupdate,然后vue的虚拟dom机制会重新构建虚拟dom与上一次的虚拟dom树利用diff算法进行对比之后重新渲染。
- updated
当更新完成后,执行updated,数据已经更改完成,dom也重新render完成,可以操作更新后的虚拟dom。
- beforedestroy
当通过某种方式调用$destroy
方法后,立即执行beforedestroy函数做一些善后工作,如清除计时器、清除非指令绑定的事件等。
- destroyed
组件的数据绑定、监听等去掉后只剩下dom空壳,此时执行destroyed。当然,也可以在这里完成上述操作。
vue的生命周期:从出生到加载 到 销毁 有一套完整的生命周期过程
能够让我们进行在不同时期去写不同的代码 去做不同的事情
钩子函数:就是不同的生命周期 vue给我们暴露出来的 回调函数
示例:
var vn = new vue({ el:'.box', data:{ msg:'<h1>呵呵</h1>' }, beforecreate:function() { alert("实例要创建了,要开始表演了"); }, created:function() { alert('vue实例已经new出来了,方法和属性还没有编译'); }, beforemount:function() { alert('vue实例已经创建完成,马上要执行内部属性和方法的编译'); }, mounted:function() { alert('对象和属性已经编译完成'); }, beforeupdate:function() { alert('数据马上更新,没保存赶紧保存'); }, updated:function() { alert('数据已经更新'); }, beforedestroy:function() { alert('vue实例已经走到尽头了'); }, destroyed:function() { alert("vue实例永远活在我们心中!!!"); } })
希望本文所述对大家vue.js程序设计有所帮助。
上一篇: 周星驰秘养生助演艺,破4年沉寂出新剧
下一篇: Oracle常见问题解决方案汇总
推荐阅读
-
Android编程实现读取手机联系人、拨号、发送短信及长按菜单操作方法实例小结
-
Python操作redis实例小结【String、Hash、List、Set等】
-
Vue作用域插槽slot-scope实例代码
-
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
-
Vue中使用方法、计算属性或观察者的方法实例详解
-
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
-
Python中defaultdict与lambda表达式用法实例小结
-
vue router 组件的高级应用实例代码
-
Vue组件内部实现一个双向数据绑定的实例代码
-
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码