VUE生命周期

这篇博客详细阐述了Vue实例从创建到销毁的整个过程,包括beforeCreated、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed等生命周期钩子的执行顺序和作用。在每个阶段,Vue如何处理数据变化、DOM操作以及组件销毁等方面进行了深入解析。作者还提醒在某些生命周期钩子中使用$nextTick()来确保DOM的更新。
摘要由CSDN通过智能技术生成

首先得 new Vue() 实例化一个vue实例。

这时会执行初始化函数 :初始化生命周期函数 initLifecycle()、初始化事件 initEvent()、定义createElement函数 initRender()。

1. 执行 beforeCreated()

beforeCreated执行后,开始定义data数据、方法和事件,并完成数据劫持observe以及给组件实例配置watcher观察者实例。 这样当数据发生变化以后,才能感知数据的变化,完成页面的渲染。

2. 执行 created() ,此时已经可以拿到data和method下的方法 ,但是页面还没渲染出来

created执行后,如果没有实例对象el,会等待调用$mount(el),调用后$mount(el)后判断是否有template,如果有实例对象el,也会判断是否有template参数,拿到后template会转成render函数

3.执行 beforeMount()

beforeMount执行后,首先会产生一个虚拟dom,当render函数被渲染时就会产生真实的dom。真实的dom会替换掉原有的编译模板template,生成一个真正可用的HTML

4. 执行 mounted()  生命周期属性 _isMounted被置为true。另外我们是可以操作dom的,因为dom这时候已经渲染完成了

ok 到这了如果数据不变化的话,其实不用也不会执行beforeUpdate 和 update

5. 执行 beforeUpdate() 会重新生成一个新的虚拟dom,然后最拿这个最新的虚拟dom和原来的虚拟dom进行diff运算,从而更新render函数的最新数据,再将更新后的render重新渲染成真实dom,也就是数据更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值