vue中created和mounted的区别浅析


Posted in Javascript onAugust 13, 2019

前言

关于vue.js中的生命周期,如果不是有特别的需求,一般在项目开发过程中更多的使用created和mounted,
所以在本文中主要讲解created与mounted在开发中的主要使用区别。

关于完整的生命周期,不久会在另一篇文章中做整体的理解,包括activated、destroyed等,不过可能会有点晚,大家可以留意一下

版本信息:

  • 系统:win10
  • Vue:2.5.2
  • webpack:3.6.0
  • npm:6.9.0
  • node:10.15.3

生命周期

完整的生命周期图示为了避免占用板块,这里就不贴出来了,大家可以自行前往vue生命周期查看。

浏览器渲染过程

具体的浏览器渲染过程我会过几天另外写一遍文章,大家可以去我的文章看看。

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

生命周期中的浏览器渲染

这里是官方文档对生命周期api的解释,大家可以看看

以下为测试vue部分生命函数

beforeCreate(){
 console.log('beforecreate:',document.getElementById('first'))//null
 console.log('data:',this.text);//undefined
 this.sayHello();//error:not a function
},
created(){
 console.log('create:',document.getElementById('first'))//null
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
},
beforeMount(){
 console.log('beforeMount:',document.getElementById('first'))//null
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
},
mounted(){
 console.log('mounted:',document.getElementById('first'))//<p></p>
 console.log('data:',this.text);//this.text
 this.sayHello();//this.sayHello()
}

通过上述测试我们可以知道,

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

以我的个人理解,vue生命周期实际上和浏览器渲染过程是挂钩的,

在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,依旧能够在浏览器中看到整体的页面)。

写在最后

笔者目前也只是一个职场小白,粗略探讨一下自己的看法,若有疑问,或者文章错误,都可以在评论中指出,我们一起讨论

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
中国地区三级联动下拉菜单效果分析
Nov 15 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
详谈JavaScript 匿名函数及闭包
Nov 14 Javascript
javascript框架设计读书笔记之种子模块
Dec 02 Javascript
微信JS接口汇总及使用详解
Jan 09 Javascript
js实现将选中值累加到文本框的方法
Aug 12 Javascript
jQuery实现弹幕效果
Feb 17 Javascript
w3c编程挑战_初级脚本算法实战篇
Jun 23 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
Angular封装搜索框组件操作示例
Apr 25 Javascript
js实现手表表盘时钟与圆周运动
Sep 18 Javascript
javascript局部自定义鼠标右键菜单
Dec 08 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 #Javascript
微信小程序使用npm包的方法步骤
Aug 13 #Javascript
Vue中的transition封装组件的实现方法
Aug 13 #Javascript
vue项目中使用AES实现密码加密解密(ECB和CBC两种模式)
Aug 12 #Javascript
详解json串反转义(消除反斜杠)
Aug 12 #Javascript
json 带斜杠时如何解析的实现
Aug 12 #Javascript
electron实现静默打印的示例代码
Aug 12 #Javascript
You might like
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
phpStudy配置多站点多域名方法及遇到的403错误解决方法
2017/10/19 PHP
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
jQuery实现灰蓝风格标准二级下拉菜单效果代码
2015/08/31 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
浅析JS动态创建元素【两种方法】
2016/04/20 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
Vue.js实现的购物车功能详解
2019/01/27 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
2020/07/28 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
使用Python实现windows下的抓包与解析
2018/01/15 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
使用pandas的DataFrame的plot方法绘制图像的实例
2018/05/24 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
Python 音频生成器的实现示例
2019/12/24 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
送给他或她的礼物:FUN.com
2018/08/17 全球购物
公司任命书范本
2014/06/04 职场文书
个人违纪检讨书
2014/09/15 职场文书
小学校园广播稿(3篇)
2014/09/19 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
公安局班子个人对照检查材料思想汇报
2014/10/09 职场文书
工作态度不好检讨书
2015/05/06 职场文书
植树节新闻稿
2015/07/17 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
读《方与圆》有感:交友方圆有度
2020/01/14 职场文书
世界十大儿童漫画书排名,法国国宝漫画排第五,第二是轰动日本连环
2022/03/18 欧美动漫