Vue生命周期函数(8个钩子函数)

生命周期:

在vue实例对象从创建到销毁的过程就是这个vue实例的生命周期
在这个过程中,vue实例经过了从开始创建、初始化数据、编译模板、挂载Dom、渲染→更新→渲染、卸载等一系列过程。

我们今天来详细的看下生命周期中的钩子函数

钩子函数:

1.beforeCreate
在我们vue创建实例对象的过程中这是第一步,到这一步这个vue实例对象身上只有默认的一些生命周期函数和默认的事件,在这里data,methods中的数据还没有初始化。

2.create
在这个过程data和methods已经初识化好了,如果需要调用这些数据和方法,最早只能在create中操作。在这里,我们可以开始调用方法进行数据请求

在之后的过程中是vue的一些内部操作,vue开始编辑模板,把vue代码中的指令进行执行,在内存中生成一个编辑好的最终模板字符串,把这个模板字符串渲染为内存中的DOM,此时只是在内存中,渲染好了模板,并没有把模板真正挂载到页面上去

3.beforeMount
在此函数执行之前,模板已经编辑好了,但是没有渲染,页面还是旧的。

4.mounted
在beforeMount到这一步之前就将内存中编译好的模板,真正替换到浏览器页面中去了。如果要进行操作页面上的DOM节点,最早在这里进行。

5.beforeUpdate
beforeUpdate调用之后,我们又会重新生成一个新的虚拟dom(Vnode),然后会拿这个最新的Vnode和原来的Vnode去做一个diff算法,从而更新render函数中的最新数据,再将更新后的render函数渲染成真实dom。也就完成了我们的数据更新
这两个是组件运行阶段的生命周期函数,这两个事件,会根据data数据的改变,有选择性的触发0次和多次

同时在根据data中的最新数据,在内存中重新渲染出一份最新的内存DOM树,并重新渲染到真实页面中,在这里完成data(Model层)->view(视图层)的更新
6.update
在update事件执行的时候,页面和data数据已经保持同步了,都是最新的
7. beforeDestroy
在执行到这里的时候进入到销毁阶段,但是实例的data数据,methods,过滤器,指令等都处于可用状态,此时还没有真正的销毁。

8.destroy
执行到这里的时候,组件全部销毁,所有的数据,方法等都不可用了

在这里插入图片描述
参考这个图来记忆这几个钩子函数。


  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue生命周期函数Vue组件或实例在创建、更新和销毁过程中触发的一系列方法。这些方法可以用来在不同的生命周期阶段执行特定的操作。 Vue生命周期函数包括: 1. beforeCreate:在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。 2. created:在实例创建完成后被立即调用。在这一阶段,实例已经完成了数据观测,属性和方法的运算,watch/event事件的配置,但是DOM元素尚未被挂载。 3. beforeMount:在实例挂载之前被调用。这个阶段,Vue 实例的模板编译已经完成,但是DOM尚未被渲染出来。可以在这个阶段进行一些初始化的事件绑定或发送AJAX请求等操作。 4. mounted:在实例挂载到DOM元素上后被调用。此时,真实的DOM元素已经被渲染出来,并且可以通过DOM API进行操作。 5. beforeUpdate:在数据更新之前被调用,发生在虚拟DOM重新渲染和打补丁之前。可以在这个阶段进行一些实例化相关的操作。 6. updated:在数据更新之后被调用,发生在虚拟DOM重新渲染和打补丁之后。可以在这个阶段进行一些DOM的操作。 7. beforeDestroy:在实例销毁之前被调用。在这个阶段,实例仍然完全可用,可以进行一些清理工作,比如清除定时器、解绑事件等。 8. destroyed:在实例销毁之后被调用。在这个阶段,实例的所有指令和观察者都已解绑,所有的事件监听器都已移除,DOM元素也已被删除。 这些生命周期函数可以帮助我们在适当的时机执行特定的操作,比如在created钩子函数中做数据初始化,mounted钩子函数中操作DOM元素,beforeDestroy钩子函数中清除定时器等。通过合理使用这些生命周期函数,可以更好地控制Vue组件或实例的行为。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值