vue生命周期图示详解及文字解析

vue生命周期(勾子函数)

开发中用到的八种勾子函数

1.beforeCreate

组件dom创建之前 (此时data、props里的数据还没有生成是不能使用的)

2.created (在vue项目中较为常用)

组件dom创建完成(此时data、props里的数据已经可以使用了)

3.beforeMount (用的次数较少)

组件dom渲染之前

4.mounted

组件dom渲染完成

5.beforeUpdate

数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。

6.updated

由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

7.beforeDistroy

实例(组件DOM)销毁之前调用。在这一步,实例仍然完全可用。
该钩子在服务器端渲染期间不被调用。

8.distroyed

实例(组件DOM)销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。
该钩子在服务器端渲染期间不被调用。

以上八种就是在勾子函数中较为常用的八种(请笑纳)
下面我们来说一下这八种勾子函数在不同的组件关系中的出现时间有哪些不同哦!

图解

app.vue
在这里插入图片描述

路由组件之间的三种关系

1.一个路由组件跳转到另一个路由组件

父组件的页面
父组件
parent beforeCreate
parent created
parent beforeMount
parent mounted
路由跳转之后
子组件
children beforeCreate
children created
children beforeMount
父组件
parent beforeDstroy
parent distroyed
子组件
parent mounted

图解

logisticx.vue
在这里插入图片描述
basic.vue
在这里插入图片描述
index.js
在这里插入图片描述
未跳转到basic组件前
在这里插入图片描述
跳转到basic组件后
在这里插入图片描述

2.父子组件关系

父组件的页面
父组件
parent beforeCreate
parent created
parent beforeMount
子组件
children beforeCreate
children created
children beforeMount
children mounted
父组件
parent mounted

图解

logisticx.vue
在这里插入图片描述
tobList.vue
在这里插入图片描述
index.js
在这里插入图片描述
页面显示(这个不存在跳转)
在这里插入图片描述

3.父子路由组件关系

父组件的页面
父组件
parent beforeCreate
parent created
parent beforeMount
parent mounted
路由跳转之后
父组件
parent beforeUpdate
子组件
children beforeCreate
children created
children beforeMount
children mounted
父组件
parent updated

图解

logisticx.vue
在这里插入图片描述
basic.vue
在这里插入图片描述
index.js(路由设置)
在这里插入图片描述

未跳转到basic组件前
在这里插入图片描述
跳转到basic组件后
在这里插入图片描述
下面我们对上面写的路由关系中不同的勾子函数执行顺序来进行解答
一个路由组件跳转到另一个路由组件
首先可以发现第一种路由关系与后两种多执行了两个勾子函数(beforeDestroy和destoryed),
我们也知道只有在实例(组件DOM)销毁的时候才会执行这两个勾子函数;
当A路由组件跳转到B路由组件的时候当执行到B组件的beforeMount阶段时,A路由组件中开始执行beforeDestroy和destoryed这两个勾子函数,最后执行B组件的mounted,也就是代表B组件正式渲染完成
父子组件与父子路由阶段之间的共同点与不同点:
以上这两种关系我们假设都是从A组件到B组件
共同点
A组件和B组件到最后都会共同显示在一个页面上
不同点
父子组件关系中B组件是在A组件的beforeMount阶段开始执行的,当B组件渲染出来时,才开始渲染A组件,
在父子路由组件关系中B组件是在A组件渲染完成之后才开始执行的,在A组件执行到mounted(数据渲染完成时才开始执行B组件的勾子函数,因为A组件已经渲染完成了,所以说在执行B组件是相当于增加了A组件的虚拟DOM,所以A组件执行了beforeUpdate和updated这两个勾子函数,
这就是以上三种路由关系,由此可以发现不同的路由关系勾子函数的执行顺序也各不相同,掌握了勾子函数在不同路由关系跳转下的执行顺序,会让您在写项目的时候少走很多弯路

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值