vue的生命周期分别是什么?
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>