简述created和mounted的区别

关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted。
所以在本文中主要讲解createdmounted在开发中的主要使用区别。
以我的个人理解,vue生命周期实际上和浏览器渲染过程是挂钩的。
在这里插入图片描述
我们从图中看两个节点:

created阶段

在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。

mounted阶段

在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

beforecreate阶段,对浏览器来说,整个渲染流程尚未开始或者说准备开始,对vue来说,实例尚未被初始化,data observer和 event/watcher也还未被调用,在此阶段,对data、methods或文档节点的调用现在无法得到正确的数据。

created阶段,对浏览器来说,渲染整个HTML文档时,dom节点、css规则树与js文件被解析后,但是没有进入被浏览器render过程,上述资源是尚未挂载在页面上,也就是在vue生命周期中对应的created
阶段,实例已经被初始化,但是还没有挂载至$el上,所以我们无法获取到对应的节点,但是此时我们是可以获取到vue中data与methods中的数据的

beforecreate阶段,实际上与created阶段类似,节点尚未挂载,但是依旧可以获取到data与methods中的数据。

mounted阶段,对浏览器来说,已经完成了dom与css规则树的render,并完成对render tree进行了布局,而浏览器收到这一指令,调用渲染器的paint()在屏幕上显示,而对于vue来说,在mounted阶段,vue的template成功挂载在$el中,此时一个完整的页面已经能够显示在浏览器中,所以在这个阶段,即可以调用节点了(关于这一点,在测试中,在mounted方法中打断点然后run,依旧能够在浏览器中看到整体的页面)。

Vue的生命周期是指Vue实例从创建到销毁的整个过程。它包括了一系列的阶段,每个阶段都有对应的钩子函数,可以让开发者在不同的阶段进行操作。 Vue的生命周期包括以下8个阶段和对应的钩子函数: 1. beforeCreate(创建前):在实例初始化之后,数据观测和事件配置之前被调用。此时,实例的属性和方法还未初始化。 2. created(创建完成):在实例创建完成后被调用。此时,实例已经完成了数据观测和事件配置,但尚未挂载到DOM上。 3. beforeMount(挂载前):在挂载开始之前被调用。此时,模板编译已经完成,但尚未将模板渲染成真实的DOM。 4. mounted(挂载完成):在挂载完成后被调用。此时,实例已经完成了模板的渲染,并且已经挂载到了DOM上。 5. beforeUpdate(更新前):在数据更新之前被调用。此时,虚拟DOM已经重新渲染,并且将要更新到真实的DOM上。 6. updated(更新完成):在数据更新完成后被调用。此时,虚拟DOM已经重新渲染,并且已经更新到了真实的DOM上。 7. beforeDestroy(销毁前):在实例销毁之前被调用。此时,实例仍然完全可用。 8. destroyed(销毁完成):在实例销毁完成后被调用。此时,实例的所有指令和事件监听器都已经被移除,所有的子实例也都被销毁。 这些钩子函数可以让开发者在不同的阶段进行操作,例如在created钩子函数中进行数据初始化,或在mounted钩子函数中进行DOM操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值