1. 生命周期图示
下图给出了Vue.js实例的生命周期,可以分为4个阶段:初始化阶段、模板编译阶段、挂载阶段和卸载阶段。
2. 初始化阶段
从new Vue()到created之间的阶段叫做初始化阶段
这个阶段里主要在Vue的实例上初始化一些属性、事件以及响应式数据,如props
、methods
、data
、computed
、watch
、inject
和provide
等。
3. 模板编译阶段
在created钩子函数和beforeMount钩子函数之间的阶段叫做模板编译阶段
这个阶段主要是将模板编译为渲染函数。
4. 挂载阶段
beforeMount钩子函数和mounted钩子函数之间的阶段是挂载阶段
这个阶段中,Vue会将其实例挂载到DOM元素上,也就是将模板渲染到指定的DOM元素上。在挂载的过程中,Vue会开启Watcher追踪依赖的变化。
在已挂载的状态下,Vue仍会持续追踪状态的变化,当状态发生改变时,Watcher会通知虚拟DOM重新渲染视图,并且在渲染视图之前触发beforeUpdate函数,渲染完毕后触发Updated函数。
5. 卸载阶段
当vm.$destroy()
方法被调用后,进入卸载阶段
在这个阶段,Vue会将自身从父组件中删除,取消实例上所有依赖的追踪并且移除所有的事件监听器。