Vue.js 是一个基于 MVVM 模式的前端框架,具有丰富的生命周期函数,用于监测实例的变化、更新界面、处理异步请求、监听事件等,从而让应用程序更加可控。Vue生命周期函数按照用途分为以下三类:
1.创建阶段(Initialization)
这个阶段是组件被创建出来之后,Vue会按照一定的顺序依次执行组件实例化、数据观测、编译模版、挂载视图等一系列的初始化操作,包括以下钩子函数
- beforeCreate:实例初始化之后,数据观测之前被调用。
- created:实例创建完成后被调用,此时已经完成数据观测。
- beforeMount:在挂载开始之前被调用,即将开始编译template,并准备将其渲染到视图中。
- mounted:在挂载完成后被调用,此时组件已经渲染并且DOM已经被更新,可以进行操作DOM和其他操作。
2. 更新阶段(Update)
在组件数据发生变化时,Vue会重新渲染组件的视图,包括以下钩子函数
- beforeUpdate:在数据更新之前被调用,此时数据已经是最新的,但是DOM还没有被重新渲染。
- updated:在数据更新之后被调用,此时DOM已经被重新渲染,可以进行操作DOM和其他操作。
3. 销毁阶段(Destruction)
组件被销毁时,Vue会清除该组件实例的所有事件监听和定时器等资源,包括以下钩子函数
- beforeDestroy:在实例销毁之前调用,此时实例仍然完全可用。
- destroyed:在实例销毁之后调用,此时实例已经被销毁,所有事件监听和定时器等资源都已经被删除。
注意事项
需要注意的是,这些生命周期函数并不是所有情况下都会被调用,比如当组件被keep-alive缓存时,beforeDestroy和destroyed钩子函数不会被触发。