vue的mouted和created在使用时的区别
引用:https://www.cnblogs.com/dehuachenyunfei/p/11811969.html
引用:https://blog.csdn.net/xdnloveme/article/details/78035065
首先得先了解浏览器渲染过程:
- 构建DOM树
- 构建css规则树,根据执行顺序解析js文件。
- 构建渲染树Render Tree
- 渲染树布局layout
- 渲染树绘制
vue的生命周期中的浏览器渲染:
以下为测试vue部分生命函数
beforeCreate(){console.log('beforecreate:',document.getElementById('first'))//nullconsole.log('data:',this.text);//undefinedthis.sayHello();//error:not a function
},
created(){console.log('create:',document.getElementById('first'))//nullconsole.log('data:',this.text);//this.textthis.sayHello();//this.sayHello()
},
beforeMount(){console.log('beforeMount:',document.getElementById('first'))//nullconsole.log('data:',this.text);//this.textthis.sayHello();//this.sayHello()
},
mounted(){console.log('mounted:',document.getElementById('first'))//<p></p>console.log('data:',this.text);//this.textthis.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中的数据的
在beforeMount阶段,实际上与created阶段类似,节点尚未挂载,但是依旧可以获取到data与methods中的数据。
在mounted阶段,对浏览器来说,已经完成了dom与css规则树的render,并完成对render tree进行了布局,而浏览器收到这一指令,调用渲染器的paint()在屏幕上显示,而对于vue来说,在mounted阶段,vue的template成功挂载在$el中,此时一个完整的页面已经能够显示在浏览器中,所以在这个阶段,即可以调用节点了(关于这一点,在笔者测试中,在mounted方法中打断点然后run,依旧能够在浏览器中看到整体的页面)。
vue的mouted和created在使用时的区别相关推荐
- JDBC:PreparedStatement与Statement在使用时的区别
PreparedStatement与Statement在使用时的区别 1.Statement: a.写sql语句 b.然后再执行executeUpdate(sql)或executeQuery(sql) ...
- IEnumerable和IQueryable在使用时的区别
最近在调研数据库查询时因使用IEnumerable进行Linq to entity的操作,造成数据库访问缓慢.此文讲述的便是IEnumerable和IQueryable的区别. 微软对IEnumera ...
- 移动硬盘和电脑内置硬盘使用时的区别
读写速度:SATA3接口内置硬盘>USB3.0接口移动硬盘 对于台式机而言,内置硬盘转速更快.对于笔记本而言,两者转速相同.
- found 84 vulnerabilities (65 low, 7 moderate, 11 high, 1 critical) vue使用时提示有漏洞
found 84 vulnerabilities (65 low, 7 moderate, 11 high, 1 critical)run `npm audit fix` to fix them, o ...
- 【VUE】数据绑定,js数组赋值,多处使用时,一处修改,另一处也会被改变
vue中数据绑定,js数组赋值,多处使用时,一处修改,另一处也会被改变 问题描述如下: this.A = [1,2,3]var B = this.A B.push(4)var C = this.A c ...
- python中turtle怎么确定坐标_关于Python turtle库使用时坐标的确定方法
关于Python turtle库使用时坐标的确定方法 想画一个比较复杂的图像,而且还想用turtle画,最让人想退却的是无规律的笔势和繁多的坐标,但既然没有按奈住冲动的心,那我告诉你一个比较笨的方法吧 ...
- 前端 重构时需要注意的事项_驾驶式扫地车的功能特点和使用时需要注意事项...
扫地车 随着经济的发展,人们的生活水平不断提高,对生活环境的要求也越来越高,于是许多工厂.物业.超市.社区.市政单位等开始购买扫地车来进行路面清洁.一是清洗效果好,二是效率高,可以节省人工成本.扫地车 ...
- 有没搞错?Java 对象不使用时要赋值为 null?
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 许多Java开发者都曾听说过"不使用的对象应手动赋 ...
- 主成分分析(Principle Component Analysis)PCA的核心思想是什么?PCA算法的优缺点?增量PCA模型, 随机PCA, 模型、 核化PCA分别是什么?使用时如何选择?
主成分分析(Principle Component Analysis)PCA的核心思想是什么?增量PCA模型, 随机PCA, 模型. 核化PCA分别是什么?使用时如何选择? 主成分分析(Princip ...
最新文章
- JVM调优常用参数配置
- python123第九周测验答案2020_运用python123平台助力编程课教学
- python十进制小数转二进制_python十进制和二进制的转换 (含浮点数)
- 运维管理工具-- Deploy Assistant
- [导入]ASP.NET 配置节架构
- Storm精华问答 | 遇到这些错误日志该如何解决?
- 如何利用docker 构建golang线上部署环境
- SQL注入学习part04:(结合sqli-libs学习:31-40关)
- Fantastical 2如何编辑事件?
- 自动驾驶_AGV小车的工作原理及其导航方式简介
- 2D转换及相关案例实现
- java 取整符号_浅析java中的取整(/)和求余(%)
- http 301、302、304、400、405、415状态码解释
- 时间序列分析之预处理(一)
- R语言入门(17)-读写excel文件
- vue element el-date-picker绑定对象 v-model=‘xx.xx‘清空后数据还是显示
- 9月19日真实虾皮裁员经历...
- Substance Painter Essential Training Substance Painter基础教程 Lynda课程中文字幕
- python万年历源代码,python万年历实现代码 含运行结果
- 《err keytool 错误: java.io.IOException: Keystore was tampered with, or password was incorrect》