vue生命周期的钩子函数
时间: 2024-01-16 10:18:50 浏览: 108
Vue生命周期是指Vue实例从创建到销毁的整个过程,而钩子函数则是在不同的生命周期阶段执行的函数。Vue提供了一系列的钩子函数,用于在特定的生命周期阶段执行相应的操作。
以下是Vue生命周期的钩子函数及其对应的生命周期阶段:
1. beforeCreate:在实例初始化之后,数据观测和事件配置之前被调用。
2. created:在实例创建完成后被立即调用。此时实例已完成以下配置:数据观测、属性和方法的运算、watch/event事件回调。然而,挂载阶段还没开始,$el属性目前不可见。
3. beforeMount:在挂载开始之前被调用。相关的render函数首次被调用。
4. mounted:el被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子函数。此时,实例已完成以下配置:编译模板、把data里面的数据和模板生成html。注意此时还没有挂载到页面上。
5. beforeUpdate:数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。可以在该钩子函数中对更新之前的状态做一些操作。
6. updated:由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子函数。可以执行依赖于DOM的操作,但是要避免更改数据。
7. beforeDestroy:实例销毁之前调用。在这一步,实例仍然完全可用。
8. destroyed:实例销毁后调用。此时,所有的事件监听器被移除,所有的子实例也被销毁。
下面是一个简单的示例,演示了Vue生命周期的钩子函数的使用:
```javascript
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
beforeCreate: function() {
console.log('beforeCreate');
},
created: function() {
console.log('created');
},
beforeMount: function() {
console.log('beforeMount');
},
mounted: function() {
console.log('mounted');
},
beforeUpdate: function() {
console.log('beforeUpdate');
},
updated: function() {
conso.log('updated');
},
beforeDestroy: function() {
console.log('beforeDestroy');
},
destroyed: function() {
console.log('destroyed');
}
});
```
阅读全文