vue生命周期中的钩子函数

vue的整个生命周期被划分为创建,挂载,更新,销毁。而实现这几个阶段靠的是vue钩子函数,也正是通过钩子函数我们能更清楚的了解vue实例的运作机制,实现业务逻辑。

具体看如下的几个阶段:

一,beforecreate:
   此阶段为vue实例的初始化之后,此时的数据观察和事件的配置都没有准备好,接下来我试着console一下数据观察data和被挂载元素el,代码如下:

打印如下:此时的data和el还是undefined,还不可用

二,created:
   在beforecreate之后紧接着的钩子函数就是create创建完毕,此时的数据准备已经创建完毕,但数据还未被挂载,同样打印data和el,代码如下:

此时的DOM还没有生成,data还没有被挂载,所以data是一个Object类型,el还是undefined

三,beforeMount:
此阶段为挂载之前,数据data已经准备好,el也已经成功的关联到指定的DOM节点,但是data数据还没有渲染,打印el,代码如下:

可看到如下打印结果:

四,mounted:
此阶段为挂载完毕,此阶段数据也都会渲染成功,同样打印el,代码如下:

此时的{{name}}已经被成功的渲染

五,beforeUpdate:

修改vue实例中的data时,vue就会页面自动更新渲染,beforeUpdate会检测到数据即将更新渲染,在更新渲染之前也就会触发钩子函数beforeUpdate,此阶段打印的data 不是最新的,


六,updated:

此阶段就是数据就是更新渲染之后,打印出来的也是最新的数据了

打印结果如下:

七,beforeDestory:

成功销毁之前会调取钩子函数beforeDestory(),

八,destoryed:

成功销毁之后,被销毁实例已经完全与其他实例解绑,与试图部分也无关联,销毁之后再修改数据会发现视图已经不再更新,说明实例已经成功解绑。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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'); } }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值