【前端vue——系列5】生命周期详讲(vue的生命周期、页面的生命周期)
系列文章总结
【前端vue——系列1】vue的路由
【前端vue——系列2】vue中的data是函数而不是对象与computed的实现原理
【前端vue——系列3】vue框架的优缺点;vue实现双向绑定
【前端vue——系列4】vuex和angular
【前端vue——系列5】生命周期详讲(vue的生命周期、页面的生命周期)
文章目录
- 系列文章总结
- 前言
- 一、页面的生命周期
- 二、vue的生命周期
- 1.vue的各个生命周期:
- 2.vue各个生命周期的应用场景
- 3.vue父子组件的生命周期顺序
- 3.1. 子组件更新过程
- 3.2 父组件更新过程:
- 3.3 销毁过程:
前言
我是刚开始在项目中接触vue时了解到生命周期这个说法,一直有总结这个部分的内容,这篇文章就是关于生命周期的总结的。
任何事物都有其自己的生命周期,比如说:自然界动植物生命周期-从出生到死亡。而页面的生命周期指的是从页面请求到页面卸载的一个过程,本文侧重讲解vue的各个生命周期以及遇到的问题。
提示:以下是本篇文章正文内容,下面案例可供参考
一、页面的生命周期
二、vue的生命周期
1.vue的各个生命周期:
- (1)beforeCreate(创建前)
这里是引用表示实例完全被创建出来之前,vue 实例的挂载元素$el和数据对象 data 都为 undefined,还未初始化。
- (2)created(创建后)
数据对象 data 已存在,可以调用 methods 中的方法,操作 data 中的数据,但 dom 未生成,$el 未存在 。
- (3)beforeMount(挂载前)
vue 实例的 $el 和 data 都已初始化,挂载之前为虚拟的 dom节点,模板已经在内存中编辑完成了,但是尚未把模板渲染到页面中。data.message 未替换。
- (4)mounted(挂载后)
vue 实例挂载完成,data.message 成功渲染。内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了。实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,DOM 渲染在 mounted 中就已经完成了。
- (5)beforeUpdate(更新前)
当 data 变化时,会触发beforeUpdate方法 。data 数据尚未和最新的数据保持同步。
- (6)updated(更新后)
当 data 变化时,会触发 updated 方法。页面和 data 数据已经保持同步了。
- (7)beforeDestory(销毁前)
组件销毁之前调用 ,在这一步,实例仍然完全可用。
- (8)destoryed(销毁后)
组件销毁之后调用,对 data 的改变不会再触发周期函数,vue 实例已解除事件监听和 dom绑定,但 dom 结构依然存在。
2.vue各个生命周期的应用场景
beforeCreate | created | mounted | updated |
---|---|---|---|
可以在此时加一些loading效果,在created时移除 | 在异步请求数据时执行,完成数据的初始化 | 操作dom时执行,也可以在此发ajax | 当数据更新需要统一业务处理时 |
补充: 在进行异步请求时如果涉及到需要页面加载完成之后的操作就用mounted
,在mounted
中,由于此时html已经渲染出来了,所以可以直接操作dom节点。
3.vue父子组件的生命周期顺序
3.1. 子组件更新过程
父beforeUpdate-->子beforeUpdate-->子updated-->父updated
3.2 父组件更新过程:
父beforeUpdate-->父updated
3.3 销毁过程:
父beforeDestroy-->子beforeDestroy-->子destroyed-->父destroyed
码字不易~, 各位看官要是看爽了,可不可以三连走一波,点赞皆有好运!,不点赞也有哈哈哈~~~
渣男あ: 大佬源码分享一下可以吗3380577783qq@.com
懂礼貌的莫小朋友: 博主我也要源码
沪漂豫姑娘~: 能提供源码吗,博主
,, ,: 博主您好,请问可以发一下完整的代码吗?
D1792735252: 我也是按照你的方法写的,但是没有连接上,可以分享我下源代码吗