浅谈Vue.js 1.x 和 2.x 实例的生命周期


Posted in Javascript onJuly 25, 2017

在Vue.js中,在实例化Vue之前,它们都是以HTML的文本形式存在文本编辑器中。当实例化后将经历创建、编译、销毁三个主要阶段。

以下是Vue.js 1.x 实例的生命周期图示:

浅谈Vue.js 1.x 和 2.x 实例的生命周期

Vue.js 1.x 的生命周期钩子

1. init

在实例开始初始化时同步调用。此时数据观测、事件和Watcher都尚未初始化。

2. created

在实例化创建之后同步调用。此时实例已经结束解析选项,已建立:数据绑定、计算属性、方法、Watcher/事件回调,但是还没有开始DOM编译,$el还不存在。

3. beforeCompile

在编译开始前调用。

4. compiled

在编译结束后调用。此时所以指令已经生效,因而数据的变化将触发DOM更新,但是不保证$el已插入文档。

5. ready

在编译结束和$el第一次插入文档后调用,如在第一次attached钩子之后调用。

6. attached

vm.$el 插入 DOM 时调用。

7. detached

在 vm.$el 从 DOM 中删除时调用。必须是由指令或实例方法删除,直接操作 vm.$el 不会触发。

8. beforeDestroy

在开始销毁实例时调用,此时实例仍然有功能。

9. destroyed

在实例被销毁之后调用,此时所有的绑定和实例的指令已经解绑,所有子实例已经被销毁。

以下是Vue.js 2.x 实例的生命周期图示:

浅谈Vue.js 1.x 和 2.x 实例的生命周期

Vue.js 2.x 的生命周期钩子

1. 废弃ready,新增mounted

在1.x版本中,ready钩子函数的调用时机是第一次插入DOM后,但是2.0不一定只执行在浏览器中,也可能在服务端渲染,所以废弃ready并新增mounted钩子函数,mounted钩子函数调用时机在DOM树生成之后。

2. 废弃beforeCompile

在1.x版本中,调用beforeCompile钩子函数是在模板编译前,2.0版本中废弃并用created代替。

3. 废弃compiled

在1.x版本中,调用compiled是在编译模板之后、DOM创建之前,2.0版本中废弃并用mounted代替。

4. 废弃attached

在1.x版本中,调用attached是在插入DOM时,2.0版本中不一定会创建真实的DOM,2.0版本废弃。

5. 废弃detached

在1.x版本中,调用detached是移除DOM时,2.0版本中不一定会创建真实的DOM,2.0版本废弃。

6. 新增beforeCreate

2.0版本中新增beforeCreate,在实例初始化之后,数据观察(data observer)和event/watcher事件配置之前被调用。

7. 新增beforeMount

2.0版本中新增beforeMount,是在Watcher之前、模板编译成render方法之后调用,相关render首次被调用。该钩子函数在服务器渲染期间不被调用。

8. 新增beforeUpdate

2.0版本中新增beforeUpdate,是在DOM树生成之前、虚拟DOM树生成之后调用,调用条件是这个vm实例已经mounted过。该钩子函数在服务器渲染期间不被调用。

9. 新增updated

2.0版本中新增updated,在DOM树生成之后调用,调用条件是这个vm实例已经mounted过。该钩子函数在服务器渲染期间不被调用。

10. 新增activated

2.0版本中新增activated,在DOM树生成之后,调用条件是keep-alive组件。该钩子函数在服务器渲染期间不被调用。

11. 新增deactivated

2.0版本中新增deactivated,在Vue实例销毁时调用,调用条件是keep-alive组件。该钩子函数在服务器渲染期间不被调用。

以上这篇浅谈Vue.js 1.x 和 2.x 实例的生命周期就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery中getJSON在asp.net中的使用说明
Mar 10 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
JavaScript实现表格排序方法
Jun 14 Javascript
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
javascript实现的一个随机点名功能
Aug 26 Javascript
jQuery中parents()和parent()的区别分析
Oct 28 Javascript
Vue.js组件tabs实现选项卡切换效果
Dec 01 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
get  post jsonp三种数据交互形式实例详解
Aug 25 Javascript
vue中如何实现pdf文件预览的方法
Jul 12 Javascript
基于AngularJS拖拽插件ngDraggable.js实现拖拽排序功能
Apr 02 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 Javascript
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 #Javascript
基于JavaScript实现百度搜索框效果
Jun 28 #Javascript
深入理解基于vue-cli的vuex配置
Jul 24 #Javascript
JS按条件 serialize() 对应标签的使用方法
Jul 24 #Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
Jul 24 #Javascript
关于vue-resource报错450的解决方案
Jul 24 #Javascript
JavaScript中的FileReader图片预览上传功能实现代码
Jul 24 #Javascript
You might like
Laravel 5框架学习之子视图和表单复用
2015/04/09 PHP
PHP定时任务获取微信access_token的方法
2016/10/10 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
基于jQuery的烟花效果(运动相关)点击屏幕出烟花
2012/06/14 Javascript
jquery实现可拖动DIV自定义保存到数据的实例
2013/11/20 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
jQuery中slice()方法用法实例
2015/01/07 Javascript
JavaScript的9种继承实现方式归纳
2015/05/18 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jQuery制作图片旋转效果
2017/02/02 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
2017/09/28 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
关于vue里页面的缓存详解
2019/11/04 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
浅析使用Python操作文件
2017/07/31 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
2018/08/10 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
详解Python字符串切片
2019/05/20 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
简单分析python的类变量、实例变量
2019/08/23 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
解决redis与Python交互取出来的是bytes类型的问题
2020/07/16 Python
python实现录音功能(可随时停止录音)
2020/10/26 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
英国领先的在线礼品店:Getting Personal
2019/09/24 全球购物
行政助理岗位职责
2013/11/10 职场文书
电气专业推荐信范文
2013/11/18 职场文书
护士见习期自我鉴定
2014/02/08 职场文书
机房搬迁方案
2014/05/01 职场文书
群众路线对照检查材料
2014/09/22 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
学习nginx基础知识
2021/09/04 Servers