vue生命周期实例小结


Posted in Javascript onAugust 15, 2018

本文实例分析了vue生命周期。分享给大家供大家参考,具体如下:

每个Vue实例都存在完整的生命周期,经历从创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、销毁等一系列过程。如下图所示

vue生命周期实例小结

钩子函数

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程序设计有所帮助。

Javascript 相关文章推荐
收集的10个免费的jQuery相册
Feb 26 Javascript
js replace 与replaceall实例用法详解
Aug 03 Javascript
jquery.cookie() 方法的使用(读取、写入、删除)
Dec 05 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
JS实现可点击展开与关闭的左侧广告代码
Sep 02 Javascript
JavaScript操作选择对象的简单实例
May 16 Javascript
BootStrap 可编辑表Table格
Nov 24 Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 Javascript
微信小程序入口场景的问题集合与相关解决方法
Jun 26 Javascript
微信小程序 如何获取网络状态
Jul 26 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
Sep 05 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
layui获取多选框中的值方法
Aug 15 #Javascript
layui radio性别单选框赋值方法
Aug 15 #Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 #Javascript
LayUI表格批量删除方法
Aug 15 #Javascript
layui中table表头样式修改方法
Aug 15 #Javascript
详解redux异步操作实践
Aug 15 #Javascript
解决Layui数据表格中checkbox位置不居中的方法
Aug 15 #Javascript
You might like
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
php使用array_search函数实现数组查找的方法
2015/06/12 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
escape、encodeURI、encodeURIComponent等方法的区别比较
2006/12/27 Javascript
Javascript 自定义类型方法小结
2010/03/02 Javascript
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
js实现按钮控制带有停顿效果的图片滚动
2016/08/30 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
2016/09/17 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
jquery仿京东侧边栏导航效果
2017/03/02 Javascript
vue头部导航动态点击处理方法
2018/11/02 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
python中常用的九种预处理方法分享
2016/09/11 Python
简单的python协同过滤程序实例代码
2018/01/31 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
2018/12/12 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
对python中不同模块(函数、类、变量)的调用详解
2019/07/16 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
Python bytes string相互转换过程解析
2020/03/05 Python
用python对oracle进行简单性能测试
2020/12/05 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
劳力士官方珠宝商:J.R. Dunn Jewelers
2018/09/29 全球购物
Chicco婴儿用品美国官网:汽车座椅、婴儿推车、高脚椅等
2018/11/05 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
计算机本科生自荐信
2013/10/15 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
JavaScript实现优先级队列
2021/12/06 Javascript
剧场版《转生恶役只好拔除破灭旗标》公开最新视觉图 2023年上映
2022/04/02 日漫
解决IDEA翻译插件Translation报错更新TTK失败不能使用
2022/04/24 Python