vue生命周期钩子
Vue生命周期是指Vue实例从创建到销毁的过程,其中包括了一系列的生命周期钩子函数,让代码在特定阶段运行。Vue生命周期总共可以分为8个阶段:创建前后,载入前后,更新前后,销毁前销毁后。生命周期会在调用app.mount()
之后开始,直到调用app.unmount()
结束。
常用的生命周期钩子是created
和mounted
,这两个生命周期中请求数据有什么区别呢?一般来说,在created
中请求数据比较合适,因为此时组件已经完成了数据观测和事件配置,而且不依赖于DOM元素。而在mounted
中请求数据可能会导致页面渲染延迟或者重复渲染。
八个Vue生命周期方法beforeCreate()
钩子是在调用app.mount()创建Vue实例之后,createApp()中的配置项生效之前调用。
created()
钩子是在beforeCreate()之后,createApp()中的配置项生效之后调用,这个时候计算属性、方法、watcher监听器已经配置好了。
beforeMount()
在created生命周期执行完成之后,应用还没有挂载到app.mount()指定的HTML元素上,在挂在之前会调用beforeMount()生命周期钩子,这个时候应用还没在页面上渲染出来。
mounted()
会在应用挂载到app.mount()指定的HTML元素之后执行,这个时候应用已经在页面上渲染出来了。
beforeUpdate()
当应用中的HTML模板需要重新渲染时,例如data中的属性发生了变化,那么在刷新之前会执行beforeUpdate()生命周期钩子。
updated()
是在数据更新后、HTML重新渲染完成之后调用。
beforeUnmount()
会在应用卸载前执行,调用app.unmount()会卸载组件,那么在正式卸载前,先执行beforeUnmount()生命周期钩子,这个时候Vue应用还是正常的,可以在里边做一些清理收尾操作。
unmounted()
生命周期会在应用正式卸载之后调用,这个时候跟应用有关的事件监听,或者指令绑定都已经卸载了。
END
vue生命周期钩子