1. Vue 生命周期概述
作为一名长期使用 Vue 的前端开发者,我深刻理解生命周期在 Vue 开发中的重要性。Vue 生命周期就像一个人的成长历程,从出生到死亡,每个阶段都有其特定的任务和行为。掌握这些生命周期钩子函数,能让我们在合适的时机执行精确的操作,避免很多常见的开发陷阱。
在 Vue 2.x 版本中,生命周期钩子主要分为创建、挂载、更新和销毁四个阶段,共8个主要钩子函数。而在 Vue 3 中,虽然整体概念相似,但部分钩子名称有所变化,并引入了 Composition API 带来的新特性。理解这些差异对于现代 Vue 开发至关重要。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Vue 2.x 生命周期详解
2.1 创建阶段
创建阶段是 Vue 实例从无到有的过程,包含以下三个关键钩子:
- beforeCreate:这是最早触发的钩子,此时实例刚被初始化,数据观测(data observer)和事件/侦听器配置都还未完成。我通常不会在这里做太多操作,因为几乎什么都访问不到。
javascript复制beforeCreate() {
console.log('beforeCreate', this.$data); // undefined
console.log('beforeCreate', this.$el); // undefined
}
- created:这个阶段已经完成了数据观测,可以访问到 data、computed 等属性,但 DOM 还未生成,$el 属性仍不可用。这里适合进行一些异步数据请求:
javascript复制created() {
console.log('created', this.$data); // 可访问
console.log('created', this.$el); // undefined
this.fetchData(); // 发起API请求
}
注意:created 钩子中的异步操作不会阻塞页面渲染,如果需要等待数据再渲染,可以考虑使用 v-if 控制模板显示
- beforeMount:在挂载开始之前被调用,此时模板编译已完成,但尚未将编译好的 DOM 替换到页面上。这个钩子在实际开发中使用频率较低。
