Vue的生命周期分为8个阶段,分别是:
beforeCreate
:实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。created
:实例已经创建完成后被调用,这时候实例已完成以下的配置:数据观测 (data observer),属性和方法的运算,watch/event 事件回调。然而,挂载阶段还没开始,$el 属性目前尚不可见。beforeMount
:在挂载开始之前被调用:相关的 render 函数首次被调用。mounted
:el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。beforeUpdate
:数据更新时调用,发生在虚拟 DOM 打补丁之前。updated
:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。beforeDestroy
:实例销毁之前调用。在这一步,实例仍然完全可用。destroyed
:Vue 实例销毁后调用。
这些生命周期的作用是帮助我们在不同阶段执行相应的操作,比如在创建实例的时候做一些初始化操作,或者在数据更新后进行一些清理工作等。
在实际情况下,可以使用生命周期函数来进行数据的初始化、监听、取消监听、定时器的开启和关闭、资源的释放等操作。
以下是一个简单的示例代码:
<!DOCTYPE html> <html> <head> <title>Vue Lifecycle Example</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script> </head> <body> <div id="app"> <p>{{ message }}</p> </div> <script> var app = new Vue({ el: '#app', data: { message: 'Hello, Vue!' }, beforeCreate() { console.log('Before create'); }, created() { console.log('Created'); }, beforeMount() { console.log('Before mount'); }, mounted() { console.log('Mounted'); }, beforeUpdate() { console.log('Before update'); }, updated() { console.log('Updated'); }, beforeDestroy() { console.log('Before destroy'); }, destroyed() { console.log('Destroyed'); } }); </script> </body> </html>