生命周期钩子函数

简介: 生命周期钩子函数


运行后打开console可以看到打印出来的内容

详细解释生命周期钩子函数

接下来将详细解释生命周期钩子函数。

(1)在beforeCreate和created钩子函数之间的生命周期。

在这个生命周期之间,首先进行初始化事件,然后进行数据观测,此时可以看到在created的时候数据已经和data属性进行了绑定(放在data中的属性的值发生改变时,视图也会改变)。注意:此时还是没有el选项。

(2)created钩子函数和beforeMount间的生命周期

在这一阶段发生的事情还是比较多的。首先会判断对象是否有el选项。如果有就继续向下编译,如果没有el选项,则停止编译,也就意味着停止了生命周期,直到在该Vue实例上调用vm.$mount(el)。此时注释掉代码中的:el:‘#app’,然后可以看到程序运行到created时就停止了,

接着往下看,template参数选项的有无对生命周期的影响,

(1)如果Vue实例对象中有template参数选项,则将其作为模板编译成render函数。

(2)如果没有template选项,则将外部HTML作为模板编译。

(3)可以看到template中的模板优先级要高于outer HTML的优先级。

注意:el进行DOM绑定要在template之前,因为Vue需要通过el找到对应的outer template。

在Vue对象中还有一个render函数,它是以createElement作为参数的,然后进行渲染操作,并且我们可以直接嵌入JSX,代码如下:

var vm = new Vue({
     el:'#app',
    render:function(createElement){
         return createElement('h1','this is createElement')
    }
})

运行程序后可以看到页面渲染的结果

所以综合排名优先级:render函数选项template选项outer HTML。

(1)beforeMount和mounted钩子函数间的生命周期,可以看到此时给Vue实例对象添加$el成员,并且替换掉挂载的DOM元素。在之前console中打印的结果可以看出beforeMount之前el的属性还是undefined。

(2)接下来讲解mounted钩子函数的生命周期。

在mounted之前h1还是通过{{message}}进行占位的,因为此时还没有挂载到页面上,还是在JavaScript中以虚拟DOM的形式存在。在mounted之后可以看到h1的内容发生了变化,如

(3)beforeUpdate钩子函数和updated钩子函数间的生命周期,如图

当Vue发现data中的数据发生了改变时,会触发对应组件的重新渲染,先后调用beforeUpdate和updated钩子函数。我们在console中输入如下信息:

vm.message = '触发组件更新'

此时可以发现触发了组件的更新

beforeDestroy钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。而destroyed钩子函数在Vue实例销毁后调用。调用后,Vue实例指示的所有东西都会被解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

目录
相关文章
|
达摩院 语音技术
使用ModelScope社区搭建一个录音情感识别小应用
本文介绍通过ModelScope来完成“语音情绪识别”这一应用,该应用使用两个模型: ● 语音转文本(ASR):paraformer模型 ● 文本情绪识别:达摩院StructBERT中文情感分类模型
2018 3
|
SQL JSON Java
【Elasticsearch专栏 10】深入探索:Elasticsearch如何进行数据导入和导出
在Elasticsearch中,数据导入常通过Bulk API、Logstash或Java客户端进行,支持JSON、CSV等格式。导出则可通过SQL查询、Scroll API或第三方工具如elasticdump实现,将数据以JSON、CSV等格式导出。这些方法确保了数据的高效、安全导入与导出。
1363 5
|
网络协议 定位技术
网络七层协议地图,报文格式一览无遗。绝对是干货,值得收藏
网络七层协议地图,报文格式一览无遗。绝对是干货,值得收藏
586 0
网络七层协议地图,报文格式一览无遗。绝对是干货,值得收藏
|
存储 Dart 数据库
Flutter笔记:状态提升、控制器模式、GetX控制器和服务
Flutter笔记:状态提升、控制器模式、GetX控制器和服务
663 0
|
11月前
|
SQL 关系型数据库 MySQL
Vanna使用ollama分析本地数据库
这篇文章详细介绍了如何使用Vanna和Ollama框架来分析本地数据库,实现自然语言查询转换为SQL语句并与数据库交互的过程。
2421 7
Vanna使用ollama分析本地数据库
|
10月前
|
JavaScript 前端开发
JavaScript 数字精度丢失问题
【10月更文挑战第24天】解决 JavaScript 数字精度丢失的问题需要综合考虑多种因素,并根据具体情况选择合适的方法。通过合理的处理和预防,可以在一定程度上减少精度误差的影响,确保计算结果的准确性。
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(四十三)-java+ selenium自动化测试-处理https 安全问题或者非信任站点-上篇(详解教程)
【5月更文挑战第7天】本文介绍了如何在Java+Selenium自动化测试中处理浏览器对不信任证书的处理方法,特别是针对IE、Chrome和Firefox浏览器。在某些情况下,访问HTTPS网站时会遇到证书不可信的警告,但可以通过编程方式跳过这些警告。
333 1
|
存储 Serverless 测试技术
从C语言到C++_30(哈希)闭散列和开散列(哈希桶)的实现(上)
从C语言到C++_30(哈希)闭散列和开散列(哈希桶)的实现
116 4
整型数据在内存中的存储
整型数据在内存中的存储
|
存储 移动开发 小程序
【Linux】Linux项目自动化构建工具——make/Makefile
【Linux】Linux项目自动化构建工具——make/Makefile

热门文章

最新文章