vue实例从创建到销毁的过程就是生命周期。过程如下:
开始创建——>初始化数据——>编译模版——>挂载Dom——>渲染、更新——>渲染——>销毁。
vue的生命钩子函数(生命周期),总共可以分为8个阶段,他们各阶段的作用如下:
1、beforeCreate(实例创建前):此阶段是获取不到props和data的数据的,因为这个阶段数据都初始化在initState中。且此阶段vue的所有属性都还不存在。
2、created(实例创建完成):此阶段可以访问之前不能访问到的数据,但此时组件还没挂载,$el也还不存在。
3、beforeMount(挂载之前):此阶段开始创建VDOM,最后执行mounted钩子,并将VDOM渲染为真实DOM并且选人数据。组件中如果有子组件的话,会递归挂载子组件,只有当所有子组件全部挂载完毕,才会执行根组件。
4、mounted(挂载之后):此阶段data中的数据已经被渲染到元素中 ,可以操作dom。
5、beforeUpdate(更新前):此阶段组件将要更新。
6、updated(组件更新后):此阶段组件更新完成。
7、beforeDestroy(组件销毁前):此阶段适宜移除事件、定时器等,否则可能会引起内存泄漏的问题。然后进行一系列的销毁操作,如果有子组件的话,也会递归销毁子组件。
8、destroyed(组件销毁后):组件销毁完成。