Vue声明周期

本文详细介绍了Vue组件的生命周期,包括创建、挂载、运行和销毁四个阶段,并讲解了每个阶段的重要钩子函数,如beforeCreate、created、mounted、updated等,强调了在不同阶段的数据操作和DOM交互注意事项。此外,还提到了生命周期在实际应用中的应用场景,如数据初始化、DOM操作和资源清理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

什么是vue的生命周期

Vue实例从创建到销毁的过程,就是生命周期

  • 创建、初始化数据、编译模板、挂载DOM、渲染、更新、渲染、销毁等一系列过程

Vue生命周期可以简单分为四个阶段:

  • 创建阶段 beforeCreate,created
  • 挂载阶段 beforeMount,mounted
  • 运行阶段 beforeUpdate,updated
  • 销毁阶段 beforeDestroy,destroyed

所有生命周期钩子函数自动绑定this上下文实例中,因此你可以访问数据,你不能用箭头函数来定义一个生命周期方法(例如created: () => this.fetchTodos())。因为箭头函数绑定了父级上下文,因此this与vue的实例不同,this.fetchTodos的行为未定义


创建阶段

创建阶段可以看作是一个vue实例生命的开始,这个阶段vue组件开始初始化,vue开始观察数据,这个阶段你有beforeCreatecreated两个生命周期函数

beforeCreate: 在初始化实例之后,数据观测和event\watcher事件配置之前被调用

beforeCreate是new Vue之后触发的第一个钩子函数,此时datamethodscomputed、以及watch上的数据和方法还未初始化,都不能被访问


created

在实例创建完成之后立即被调用,此时已完成以下的配置:数据观测、property和方法的运算,watch、event事件回调,然而挂载阶段还没开始,$el目前上不可用,也就是可以使用数据、更改数据,在这里更改数据不会触发updated函数

  • data和methods都已经被初始化好了,如果需要调用methods中的方法,或者操作data中的数据,可以在这个阶段中操作
  • 无法与DOM进行交互,如果需要,可以通过vm.$nextTick来访问DOM
  • 异步数据的请求适合在created钩子中使用,例如数据初始化

挂载阶段

这个阶段将实现 DOM 的挂载,这标志着我们可以在浏览器里中看到页面了。

beforeMount

  • beforeMount发生在挂载之前,在这之前template模板已经导入render函数编译,此时虚拟DOM已经创建完成,即将开始渲染,在这一阶段有可以对数据进行更改,不会触发updated函数

  • 执行到这个钩子函数的时候。在内存中已经编译好了模板,但是还没有挂载到页面中,此时页面还是旧的

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值