关于vue.js中的生命周期,如果没有特别的需求,通常在项目开发过程中使用created和mounted。
因此,本文主要说明created和mounted在开发中的主要使用差异。
我个人的理解是,vue生命周期实际上与浏览器的渲染过程有关。
从图中看到两个节点。
created阶段在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted阶段在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
在在beforecreate阶段浏览器中,整个渲染过程尚未开始或未准备好开始。 在vue中,实例尚未初始化,数据观察器和事件/写入器也尚未调用。 在此阶段,对data、methods或文档节点的调用当前不可用
对于在created阶段浏览器来说,在呈现整个HTML文档时,dom节点、css规则树和js文件被解析,但没有进入由浏览器重新渲染的过程。 上述资源尚未装载到页面上,即在vue生命周期中对应的created
阶段、实例已初始化,但未装载在$el中,因此无法获取相应的节点,但此时可以获取vue的数据和方法数据
在beforecreate阶段实际上与created阶段一样,节点尚未装载,但可以获取数据和方法数据。
在mounted阶段对于浏览器来说,是dom和css规则树的render完成,render tree的布局完成。 浏览器接收此命令,并在屏幕上显示调用渲染器的paint ()。 对于vue来说,这是一个mounted阶段,vue现在在浏览器中显示了完整的页面,可以在此阶段调用节点。 关于这一点,在测试过程中通过mounted方法中断点并运行,可以在浏览器中看到整个页面。