Vue的几个生命周期函数

  • Post author:
  • Post category:vue


什么是生命周期和生命周期函数

生命周期是指一个组件从创建->运行->销毁的整个阶段,强调的是时间段。

生命周期函数是由Vue框架提供的内置函数,会伴随着组件的生命周期,自动按次序执行。

注意:生命周期强调的是时间段,生命周期函数强调的是时间点。

创建期间的生命周期函数

1、beforeCreate:

实例在被完全初始化之前调用该函数,此时,还没有初始化好 data 和 methods 属性

2、created:

此时Vue的数据和方法(data,methods)都已经初始化好了;

如果要操作data和methods,最早需要在这个函数中操作;

created完成后就开始编译html模板,把模板字符串渲染为DOM,最终在内存中生成一个已经编译完成的最终模板;

最终模板仅仅存在于内存中,并没有被渲染到页面中;

3、beforeMount:

此时已经完成了模板的编译,但是还没有挂载到页面中;

4、mounted:

此时,已经将编译好的模板,挂载到了页面指定的容器中显示;

如要操作dom节点,最早需要在这个函数中进行;

执行完mounted后,表示实例已经创建完成,若无其他操作,内存不会再有活动;

运行期间的生命周期函数

5、beforeUpdate:

此时页面已经完全挂载,此函数表示在页面数据发生改变时执行;

数据改变时,页面的数据并没有更新,但data中的数据已经更新完毕;

6、updated:

此时 data 中的状态值和界面上显示的数据,都已经完成了更新,界面已经被重新渲染好了;

销毁期间的生命周期函数

7、beforeDestroy:

实例销毁之前调用,在这一步,实例仍然完全可用。

8、destroyed:

Vue 实例指示的所有东西都会解除绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

组件已经全部销毁,所有的data、methods都无法使用。

在生命周期钩子函数中,最常用的应该就是created和mounted了。

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。主要应用:调用数据,调用方法,调用异步函数。

mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。由于此时html已经渲染出来了,所以可以直接操作dom节点。



版权声明:本文为laya1211原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。