六、组件的生命周期与组件间之间的数据共享

本文介绍了Vue.js中组件的生命周期及其各个阶段的特点,并详细解释了不同组件间如何通过自定义属性和事件进行数据共享。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、组件的生命周期

1.1、生命周期 & 生命周期函数

生命周期(Life Cycle)是指一个组件从创建运行销毁的整个阶段,强调的是一个时间段
生命周期函数:是由vue框架提供的内置函数,会伴随着组件的生命周期,自动按次序执行
注意:生命周期强调的是时间段生命周期函数强调的是时间点

1.2、组件生命周期函数的分类

在这里插入图片描述

1.3、生命周期图示

可以参考 vue 官方文档给出的"生命周期图示",进一步理解组件生命周期执行的过程:
https://v2.cn.vuejs.org/v2/guide/instance.html → 生命周期图示
在这里插入图片描述

1.3.1、beforeCreate

组件的 props / data / methods尚未被创建,都处于不可用状态。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

1.3.2、created

组件的props / data / methods已创建好,都处于可用的状态。但是组件的模板结构尚未生成
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

1.3.3、beforeMount

将要把内存中编译好的 HTML结构渲染到浏览器中。此时浏览器中还没有当前组件的DOM结构。
在这里插入图片描述在这里插入图片描述

1.3.4、mounted

已经把内存中的 HTML 结构,成功的渲染到了浏览器之中。此时浏览器中已然包含了当前组件的DOM结构
在这里插入图片描述在这里插入图片描述

1.3.5、beforeUpdate

将要根据变化过后、最新的数据,重新渲染组件的模板结构。
在这里插入图片描述在这里插入图片描述

1.3.6、updated

已经根据最新的数据,完成了组件 DOM 结构的 重新渲染
在这里插入图片描述在这里插入图片描述

1.3.7、beforeDestory

将要销毁此组件,此时尚未销毁,组件还处于正常工作的状态。
在这里插入图片描述在这里插入图片描述

1.3.8、destroyed

组件已经被销毁,此组件在浏览器中对应的 DOM结构已被完全移除

1.4、总结

在这里插入图片描述

二、组件之间的数据共享

2.1、组件之间的关系

在项目开发中,组件之间的最常见的关系分为如下两种:父子关系兄弟关系
在这里插入图片描述

2.2、父子组件之间的数据共享

父子组件之间的数据共享又分为:父→子共享数据、子→父共享数据

2.2.1、父组件向子组件共享数据

父组件向子组件共享数据需要使用自定义属性。示例代码如下:
在这里插入图片描述在这里插入图片描述

2.2.2、子组件向父组件共享数据

子组件向父组件共享数据使用自定义事件。示例代码如下:
在这里插入图片描述在这里插入图片描述

2.3、兄弟组件之间的数据共享

vue2.x中,兄弟组件之间数据共享的方案是EventBus
在这里插入图片描述
EventBus 的使用步骤

  1. 创建eventBus.js模块,并向外共享一个 Vue的实例对象
  2. 在数据发送方,调用bus.$emit(‘事件名称’,要发送的数据)方法触发自定义事件
  3. 在数据接收方,调用bus.$on(‘事件名称’,事件处理函数)方法注册一个自定义事件

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上善若水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值