之前面试的时候,很多次被问到Vue的生命周期,回答的都很浅显,并没有很深的了解过每一个钩子的调用状态,这两天又学习到了生命周期这里,下面是我对生命周期的初步理解,如有理解不恰当的地方欢迎大家指正,我会积极的改正,愿和大家一同进步。
1、定义:从Vue实例的创建、运行、到销毁,在这些过程中,伴随着很多各式各样的事件,那么这些事件就叫做生命周期。(生命周期的钩子函数就是周期函数)
2、官网生命周期示意图解析:
图画的很潦草,有理解不正确的地方欢迎指正
3、生命周期的分类及状态:
3.1 创建期间的生命周期函数:
beforeCreate():此时,实例在内存中刚刚创建出来,data和methods没 有被初始化。
created():此时,实例已经在内存中创建完成,data和methods已经被初始化完成。模板还没有编译。
beforeMount():此时,模板已经编译成功,还没有挂载到页面上。
mounted():此时,编译好的模板已经挂载到了指定的位置上去。
3.2 运行期间的生命周期函数:
beforeUpdate():此时,data数据发生改变后,还没有重新渲染DOM树,data的数据是最新的,但是页面上展示的还是旧数据。
updated():此时,data中的数据和页面中的渲染是一致的。
3.3 销毁期间的生命周期函数:
beforeDestroy():此时,实例的方法、指令都还可以使用,实例销毁之前调用。
destroyed():此时,Vue实例上的所有指令、绑定、监听都会被销毁,子实例也全部被销毁。
上面就是我对Vue实例从创建到运行到销毁的状态理解,希望可以帮到一些小伙伴。