当前位置:首页 > 日记 > 正文

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

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

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

以下是Vue.js 1.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 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 实例的生命周期就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

PS简单制作阳光穿越厚厚的云层效果

PS简单制作阳光穿越厚厚的云层效果

阳光,云层,效果,简单,电脑软件,今天小编为大家分享PS简单制作阳光穿越厚厚的云层效果方法,教程很简单,对于初学者来说,可以通过这篇文章学习如何制作阳光效果的方法,好了,下面我们一起来学习吧!最终效果图: 步骤:本期为您分享如上图制作的"穿越云…

PHP获取文件扩展名的方法实例总结

PHP获取文件扩展名的方法实例总结

方法,实例,文件扩展名,电脑软件,PHP,本文实例总结了PHP获取文件扩展名的方法。分享给大家供大家参考,具体如下:在PHP面试中或者考试中会有很大几率碰到写出五种获取文件扩展名的方法,下面是我自己总结的一些方法$file = '需要进行获取扩展名…

IIS部署asp.net mvc网站的方法

IIS部署asp.net mvc网站的方法

方法,网站,电脑软件,asp,IIS,iis配置简单的ASP.NET MVC网站,供大家参考,具体内容如下编译器:VS 2013本地IIS:IIS 7操作系统:win 7MVC版本:ASP.NET MVC4sql server版本: 2008 r2打开VS 2013,新建一个MVC项目(Internet版的),然后在本地上运行测试下,…

新的滤镜怎么下载添加进PS中

新的滤镜怎么下载添加进PS中

下载,滤镜,方法,电脑软件,PS,   在ps中很多地方都需要用到新的滤镜,我们可以试试下载之后添加进ps中使用。很多刚学习的新手小伙伴可能还不知道,下面是小编带来关于新的滤镜怎么下载添加进PS中的内容,希望可以让大家有所收获!  新的滤镜下…

Word2016中如何使用模板创建文档

Word2016中如何使用模板创建文档

文档,模板,方法,如何使用,电脑软件,  在启动word文档后,用户可以根据自己的需要创建新文档。此时,用户也可以选择word的设计模板来创建文档。以下是小编为您带来的关于Word2016中使用模板创建文档的方法,希望对您有所帮助。Word2016中使用模…

Node.js 8 中的 util.promisify的

Node.js 8 中的 util.promisify的

详解,电脑软件,js,Node,promisify,Node.js 8 于上个月月底正式发布,带来了 很多新特性 。其中比较值得注意的,便有 util.promisify() 这个方法。util.promisify()虽然 Promise 已经普及,但是 Node.js 里仍然有大量的依赖回调的异步函数,如果我…

setTimeout函数的神奇使用

setTimeout函数的神奇使用

函数,神奇,电脑软件,setTimeout,【写在前面的胡言乱语】自从大三开始实习之后,就没有写博客了,虽然学了很多东西,但是如果没有进行总结和分享,学的东西就很容易忘记,而且不进行分享,就不会手动去敲代码,这样对知识的理解就不够透彻。现在毕业半年…

Node学习记录之cluster模块

Node学习记录之cluster模块

模块,学习,电脑软件,Node,cluster,在如今机器的CPU都是多核的背景下,Node的单线程设计已经没法更充分的"压榨"机器性能了。所以从v0.8开始,Node新增了一个内置模块——“cluster”,故名思议,它可以通过一个父进程管理一坨子进程的方式来实现…

自定义事件解决重复请求BUG的问题

自定义事件解决重复请求BUG的问题

请求,自定义事件,电脑软件,BUG,现在,组件化开发还是比较流行的,毕竟其优点相当突出。最近在开发一个组件的时候,遇到了一个很有意思的BUG。。。BUG的背景最近在开发一个组件,好不容易开发好了转测试。然后,测试给我提了一个这样的bug,orz...因为…

微信小程序异步处理详解

微信小程序异步处理详解

异步处理,详解,程序,电脑软件,微信小,本文实例为大家分享了微信小程序异步处理的具体方法,供大家参考,具体内容如下直接看问题:然后看打印的结果:根据上面两图可以看出,代码上先执行的网络请求,再执行打印的变量,但是从下面打印的结果来看,先出结果…

解决ASP.NET Core Mvc文件上传限制

解决ASP.NET Core Mvc文件上传限制

文件上传,实例,电脑软件,NET,ASP,一、简介在ASP.NET Core MVC中,文件上传的最大上传文件默认为20MB,如果我们想上传一些比较大的文件,就不知道怎么去设置了,没有了Web.Config我们应该如何下手呢?二、设置上传文件大小1.应用程序级别设置我们需…

JS之if语句对接事件动作逻辑 | 详

JS之if语句对接事件动作逻辑 | 详

语句,事件,详解,逻辑,动作,if 函数的实现步骤:function +名字()指定id , 指定开关(display: none or block)if + else 构成逻辑 控制开关决定在哪里安置一个灯泡, 指定一个id给某个标签把开关用电线连着灯泡, 安装开关#+id名称{ 属性1= 赋值…