Vue.js是一种前端框架,它提供了一系列的生命周期钩子函数,让开发者可以在组件的不同阶段执行特定的逻辑。Vue.js的生命周期可以分为以下几个阶段:
创建阶段(Creation)
beforeCreate:在组件实例初始化完成之后立即调用。在实例初始化完成、props 解析之后、data() 和 computed 等选项处理之前立即调用。
created:在组件实例处理完所有与状态相关的选项后调用。当这个钩子被调用时,以下内容已经设置完成:响应式数据、计算属性、方法和侦听器。然而,此时挂载阶段还未开始,因此 $el 属性仍不可用。
beforeMount:在组件被挂载之前调用。当这个钩子被调用时,组件已经完成了其响应式状态的设置,但还没有创建 DOM 节点。它即将首次执行 DOM 渲染过程。
mounted:在组件被挂载之后调用。此时组件已经生成对应的 DOM,并且可以进行 DOM 操作。通常在这里进行异步数据的请求。
更新阶段(Update)
beforeUpdate:在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用。
updated:在组件因为一个响应式状态变更而更新其 DOM 树之后调用。
销毁阶段(Destruction)
beforeDestroy:在一个组件实例被卸载之前调用。当这个钩子被调用时,组件实例依然还保有全部的功能。
destroyed:在一个组件实例被卸载之后调用。可以在这个钩子中手动清理一些副作用,例如计时器、DOM 事件监听器或者与服务器的连接。
keep-alive 独有的生命周期
分别为 activated 和 deactivated。用 keep-alive 包裹的组件在离开时不会进行销毁,而是缓存到内存中并执行 deactivated 钩子函数,进入时会执行 activated 钩子函数。