生命周期函数-组件创建期间的4个钩子函数|学习笔记

简介: 快速学习生命周期函数-组件创建期间的4个钩子函数

开发者学堂课程【Vue.js 入门与实战生命周期函数-组件创建期间的4个钩子函数】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/586/detail/8155


生命周期函数-组件创建期间的4个钩子函数


目录

一、Vue实例的生命周期

二、Vue实例

 

一、Vue 实例的生命周期

1.Vue 实例的生命周期

http://cn.vuejs.org/v2/guide/instance.html#生命周期实例Vue 实例创建、运行、到销毁期间,总是伴随着各种各样的事件,这些事件,统称为生命周期。

2.生命周期钩子:

http://cn.vuejs.org/v2/api# 选项-生命周期钩子是生命周期事件的别名。

生命周期钩子=生命周期函数=生命周期事件

3.主要的生命周期函数分类:

创建期间的生命周期函数:

beforeCreatecreatedbeforeMount mounted.

运行期间的生命周期函数:

beforeUpdateupdated.

销毁期间的生命周期函数:

beforeDestroydestroyed.

 

二、Vue实例:

image.png

在上图中,

1.New vue() :

varvm=new vue({}) 表示开始创建一个 Vue 的实例对象

2. Init events&Lifecycle:

代表初始化了一个空的实例对象,这个对象身上,只有默认的一些生命周期函数和默认的事件,其他的东西都未创建。此时会进如beforecreate() 这个第一个生命周期函数

代码实例:(生命周期函数演示)

Var vm = new Vue{{

el:’#app’

data:{

msg:’ok’

}

Methods:{

show(){

console.log(‘执行了 show 方法’)

}

}

Beforecreate(){

//这是遇到的第一个生命周期函数,表示实例完全被创建出来之前,会执行它。

console.log(this.msg)

这样写在语法层面上,没有任何问题,但此时如果右键游览检查,会显示:undefined

image.png

在这个生命周期函数执行时,无法拿到 date 数据,这证明 date 的数据还没有初始化

//console.log(this.msg) this.show()

此时如果右键游览检查,会显示: this.show is not a fuction

image.png 

此时证明 methods 的数据还没有初始化

所以我们可以得出结论,注意:在 befozeCreate 生命周期函数执行的时,data 和 methods 中的数据都还没有没初始化。

3. Initinjections & reactivity:

这步之后 methods 里的方法和 data里的数据已经被初始化。执行后会进入到created() 这个第二个生命周期函数

代码实例:(生命周期函数演示)

created()  

console.log(this.msg)

this.show()

此时如果右键游览检查,会显示:ok,执行了 show 方法

image.png

Created(){//这是遇到的第二个生命周期函数在 created 中,data 和 methdas 都已经被初始化好。如果要调用 methods 中的方法,或者操作 data 中的数据,最早只能在 created 中操作。

4.分支流程判断

image.png

接下来进入分支判断流程(流程图中菱形代表分支流程,矩形代表相关操作)

判断有没有“el”这个属性,el代表:el:’#app’

目前没有,继续走 no 的流程,编译 el 的 outerHTML 当做模版,把 div 里面所有的内容,编译成模块进而执行操作。这里表示 Vue开始编辑模板。Vue 代码中的那些指令进行执行,最终在内存中生成一个编译好的最终模板字符串。然后,把这个模板字符串,渲染为内存中的 DOM 此时,只是在内存中,渲染好了模板,并没有把模板挂载到真正的页面中去。

5.beforeMount ()第个生命周期函数

 

image.png

beforeMount(){

//这是遇到的第三个生命周期函数,此函数执行时,表示模板已经在内存中编辑完成了,但是尚未把模板渲染到页面中,此时页面还是旧的。

代码实例:(生命周期函数演示)

{{  msg  }}

Console.log.(document. getElementById(‘h3’).innerText)

此时如果右键游览检查,会显示:{{  msg  }},并不是真实的 ok 内容。这说明:

//在 beforeMount 执行时,页面中的元素,还没有被真正替换过来,只是之前写的一些模板字符。

6. Create vm $el and replace “el”with it

这一步表示将内存中编译好的模板,真实的替换到浏览器的页面中去。

7. mounted()

mounted(){

//这是遇到的第四个生命周期函数,表示内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面。

代码实例:(生命周期函数演示)

mounted(){Console.log.(document. getElementById(‘h3’).innerText)

此时如果右键游览检查, ok 内容。

注意:mounted 是实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,此时,如果没有其它操作,这个实例在内存中保持不变。

当执行到 mounted 表示组件已经创建完成。四个钩子函数中前两个是一组,是实例刚被初始化,后两个是一组,是模板将要被挂载和已经被挂载完成。

相关文章
|
1天前
|
数据采集 人工智能 安全
|
10天前
|
云安全 监控 安全
|
2天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
917 150
|
2天前
|
编解码 人工智能 机器人
通义万相2.6,模型使用指南
智能分镜 | 多镜头叙事 | 支持15秒视频生成 | 高品质声音生成 | 多人稳定对话
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1656 8
|
7天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
612 152
|
9天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
582 15
|
9天前
|
人工智能 自然语言处理 API
Next AI Draw.io:当AI遇见Draw.io图表绘制
Next AI Draw.io 是一款融合AI与图表绘制的开源工具,基于Next.js实现,支持自然语言生成架构图、流程图等专业图表。集成多款主流大模型,提供智能绘图、图像识别优化、版本管理等功能,部署简单,安全可控,助力技术文档与系统设计高效创作。
666 151