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 相关文章推荐
jquery中ajax学习笔记3
Oct 16 Javascript
固定背景实现的背景滚动特效示例分享
May 19 Javascript
jquery判断单选按钮radio是否选中的方法
May 05 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
vue项目打包后打开页面空白解决办法
Jun 29 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
axios使用拦截器统一处理所有的http请求的方法
Nov 02 Javascript
微信小程序云开发修改云数据库中的数据方法
May 18 Javascript
vue实现PC端录音功能的实例代码
Jun 05 Javascript
何时/使用 Vue3 render 函数的教程详解
Jul 25 Javascript
JS性能优化实现方法及优点进行
Aug 30 Javascript
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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
PHP超全局数组(Superglobals)介绍
2015/07/01 PHP
5款适合PHP使用的HTML编辑器推荐
2015/07/03 PHP
通过javascript把图片转化为字符画
2013/10/24 Javascript
Javascript动态引用CSS文件的2种方法介绍
2014/06/06 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
零基础轻松学JavaScript闭包
2016/12/30 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
2017/05/10 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
微信小程序时间戳转日期的详解
2019/04/30 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
基于Vue2实现移动端图片上传、压缩、拖拽排序、拖拽删除功能
2021/01/05 Vue.js
python字符串中的单双引
2017/02/16 Python
浅析PHP与Python进行数据交互
2018/05/15 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Python Pywavelet 小波阈值实例
2019/01/09 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
Python GUI编程完整示例
2019/04/04 Python
Python实现最常见加密方式详解
2019/07/13 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
哥伦比亚最大的网上商店:Linio哥伦比亚
2016/09/25 全球购物
公共场所禁烟倡议书
2014/08/30 职场文书
法人委托书范本格式
2014/09/15 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
NGINX 权限控制文件预览和下载的实现原理
2022/01/18 Servers