前端Vue(五)——Vue生命周期

Vue生命周期

一、介绍

官方术语:生命周期钩子====>也是:生命周期函数

生命周期图网址:https://cn.vuejs.org/images/lifecycle.png

Vue生命周期分三个阶段:
1、初始化
2、运行状态
3、销毁阶段

知道生命周期有什么用呢?

知道了整个生命周期流程,我们可以在整个生命周期流程中的某个阶段执行我们想要的操作,会有很好的效果。而且这个生命周期在日后开发中会经常用到。当然,其本身也很重要。

二、初始化

首先当然是新建Vue实例:

接着开始初始化。

初始化这里做了什么呢?

Vue自身内部事件的初始化和内部生命周期相关函数的初始化。

1、beforeCreate——第一个函数

接着会触发一个生命周期钩子函数,beforeCreate(),这个事件执行时,Vue实例仅仅完成生命周期初始化(仅仅完成自身事件的绑定和生命周期函数的初始化工作,Vue实例中还没有 data,el,methods相关属性)。

举个例子:

可以看到,此时拿不到数据!

2、注入与校验

接着就是注入和校验。此时才开始真正的初始化工作。注入和校验是什么意思呢?

注入:注入 data 数据与 methods 方法。

校验:对 methods 中的语法进行校验。

把 data 与 methods 注入到Vue实例中,紧接着就是语法校验。

3、Create——第二个函数

之后就是Create。

所以生命周期函数第二个函数就是 Create()。

到了Create这一步,就可以拿到数据与方法了。

可以看到,before的时候还拿不到。但是Create的时候已经拿得到数据了。

所以在后端取得数据的时候,就可以选择在此时进行赋予数据:

4、el作用域

Create之后,就是指定el作用域。此时有el组件,但是还没有template模板。

之后就是模板:

此时,就会把span 这一块 当做Vue的模板,此时里面的双大括号,{{ msg }} ,这一块,还没有解析。

接着就开始解析插值表达式,编译。

5、beforeMount——第三个函数

编译完成之后。接着是第三个函数:beforeMount。
就是说,进到 beforeMount 这里的时候,插值表达式里面的值并没有进行替换。

看下结果:

结果是并没有进行替换。

之后就是开始替换。

6、mounted——第四个函数

接着就是第四个函数:mounted。到了这一步,已经替换数据,渲染页面了。

来看下结果:

可以看到,确实是替换了数据,渲染页面了。

到mounted之后,整个Vue已经初始化完成了。所以整个生命周期前四个函数,可以称为初始化函数。

三、运行阶段

7、beforeUpdate——第五个函数

到了beforeUpdate这里,就是第五个函数。
该函数是data中数据发生变化时执行,这个事件执行时仅仅是Vue实例中data数据变化,页面显示的依然是原始数据。

之后就是生成一个虚拟的DOM,然后虚拟的DOM去替换页面的DOM,完成更新。

8、updated——第六个函数

到了这里,是第六个函数。
该函数执行时,data中数据发生变化,页面中数据也发生了变化,页面中的数据已经和data中的数据一致。

此时来测试下:

可以看到,updated确实是变化了数据,而beforeUpdate 确实是没有变化数据。

生命周期中Updated 与 beforeUpdate 执行多少次不确定,只要有数据变化,它们就会执行。

四、销毁阶段

这个阶段一般不会去调用,了解即可

7、beforeDestroy——第七个函数

在 beforeDestroy 执行时,Vue实例中的数据、事件,还没有被销毁。

8、destroy——第八个函数

该函数执行时,Vue实例彻底销毁。

来源:https://www.icode9.com/content-4-859001.html

(0)

相关推荐