京东6.18大促主会场领京享红包更优惠

 找回密码
 立即注册

QQ登录

只需一步,快速开始

Vue中created和mounted使用详解

2024-11-2 22:33| 发布者: c2688| 查看: 63| 评论: 0

摘要: 目次一、生命周期概念二、欣赏器渲染过程三、生命周期中的欣赏器渲染beforeCreate阶段created阶段beforeMount阶段mounted阶段四、使用场景五、常见相干问题总结一、生命周期概念 通俗地讲,生命周期即Vue实例或组件
目次

一、生命周期概念

通俗地讲,生命周期即Vue实例或组件从创建到被消灭的一系列过程,中心的各个节点被称为钩子. vue.js中created方法是一个生命周期钩子函数,一个vue实例被天生后会调用这个函数。

一个vue实例被天生后还要绑定到某个html元素上,之后还要举行编译,然后再插入到document中。

每一个阶段都会有一个钩子函数,方便开发者在不同阶段处置惩罚不同逻辑。

一样平常可以在created函数中调用ajax获取页面初始化所需的数据。

二、欣赏器渲染过程

要深刻明确生命周期的各个节点,就必须相识欣赏器的渲染过程

  • 构建DOM树
  • 构建css规则树,根据实行次序剖析js文件。
  • 构建渲染树Render Tree
  • 渲染树布局layout
  • 渲染树绘制

三、生命周期中的欣赏器渲染

  • created:已创建,在模板渲染成[code]html[/code]前调用,即通常初始化某些属性值,然后再渲染成视图。
  • mounted:已挂载,在模板渲染成[code]html[/code]后调用,通常是初始化页面完成后,再对[code]html[/code]的[code]dom[/code]节点举行一些操纵。

通常created使用的次数多,而mounted是在一些插件或组件的使用中举行操纵,好比插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart举行一些初始化设置,肯定要等这个html渲染完后才可以举行,那么mounted就是不二之选。

生命周期是否获取dom节点是否获取data是否获取methods
beforeCreate
created
beforeMount
mounted

beforeCreate阶段

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

created阶段

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

beforeMount阶段

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

mounted阶段

对欣赏器来说,已经完成了dom与css规则树的render,并完成对render tree举行了布局,而欣赏器收到这一指令,调用渲染器的paint()在屏幕上表现,而对于vue来说,在mounted阶段,vue的template乐成挂载在$el中,此时一个完备的页面已经可以或许表现在欣赏器中,所以在这个阶段,即可以调用节点了(关于这一点,在笔者测试中,在mounted方法中打断点然后run,依旧可以或许在欣赏器中看到团体的页面)。

四、使用场景

通过欣赏器的渲染过程,可以总结出created和mounted的使用场景

  • [code]created[/code]通常用于初始化某些属性值,比方data中的数据,然后再渲染成视图。
  • [code]mounted[/code]通常在初始化页面完成后,对html的dom节点举行需要的操纵。

因此,在created中,是无法举行DOM操纵的,而mounted可以获取渲染出来的所有属性值。

五、常见相干问题

一些页面跳转后, 一些底子数据接口没有重新哀求

举个简单的例子:

[code]created(){ this.init(); }, mounted() { this.init(); }, methods: { init() { this.getList(); this.getdetailById(); this.getFicts(); } },}[/code]

总结

以上为个人履历,渴望能给各人一个参考,也渴望各人多多支持脚本之家。


来源:https://www.jb51.net/javascript/328626o2j.htm
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
关闭

站长推荐上一条 /6 下一条

QQ|手机版|小黑屋|梦想之都-俊月星空 ( 粤ICP备18056059号 )|网站地图

GMT+8, 2025-7-2 09:09 , Processed in 0.029275 second(s), 19 queries .

Powered by Mxzdjyxk! X3.5

© 2001-2025 Discuz! Team.

返回顶部