了解 Vue 工程化开发中的组件通信

时间:2024-04-16 20:34:11

目录

1. 组件通信语法

1.1. 什么是组件通信?

1.2. 为什么要使用组件通信?

1.3. 组件之间有哪些关系(组件关系分类)?

1.4. 组件通信方案有哪几类 ?

2. 父子通信流程图

3. 父传子

3.1. 父传子核心流程props

4. 子传父

4.1. 子传父核心流程$emit

5. prop 介绍

5.1. prop 定义

5.2. prop 作用

5.3. prop 特点

5.4. prop 练习

6. props 校验

6.1. 问题引入(思考)

6.2. props 校验的作用

6.3. props 校验的语法

7. prop 与 data,单向数据流

7.1. prop 与 data的共同点

7.2. prop 与 data的区别

7.3. 单向数据流介绍

7.4. 口诀

8. 非父子 (拓展)-event bus 事件总线

8.1. event bus 事件总线的作用

8.2. event bus 事件总线的步骤

9. 非父子 (拓展)-provide 与 inject

9.1. provide 与 inject 的作用

9.2. provide 与 inject 的步骤


 

1. 组件通信语法

1.1. 什么是组件通信?

  • 组件通信, 就是指 组件与组件 之间的数据传递

1.2. 为什么要使用组件通信?

  • 组件的数据是独立的,无法直接访问其他组件的数据
  • 想用其他组件的数据,就需要组件通信

1.3. 组件之间有哪些关系(组件关系分类)?

  • 父子关系
  • 非父子关系

1.4. 组件通信方案有哪几类 ?

 

2. 父子通信流程图

  • 父组件通过 props 将数据传递给子组件
  • 子组件利用 $emit 通知父组件修改更新

3. 父传子

父组件通过 props 将数据传递给子组件

3.1. 父传子核心流程props

  • 父组件中给子组件添加属性传值
  • 子组件props 接收
  • 子组件使用

 

4. 子传父

子组件利用 $emit 通知父组件,进行修改更新

4.1. 子传父核心流程$emit

  • 子组件$emit 发送消息
  • 父组件中给子组件添加消息监听
  • 父组件中实现处理函数

 

5. prop 介绍

5.1. prop 定义

  • 组件上 注册的一些 自定义属性

5.2. prop 作用

  • 向子组件传递数据

5.3. prop 特点

  • 可以 传递 任意数量 的prop
  • 可以 传递 任意类型 的prop

5.4. prop 练习

 

6. props 校验

6.1. 问题引入(思考)

  • 组件的 prop 可以乱传吗?

6.2. props 校验的作用

  • 为组件的 prop 指定验证要求,不符合要求,控制台就会有错误提示

目的:帮助开发者,快速发现错误

6.3. props 校验的语法

  • 类型校验
  • 非空校验
  • 默认值
  • 自定义校验

类型校验的语法

Props 校验的完整语法

 

7. prop 与 data,单向数据流

7.1. prop 与 data的共同点

  • 都可以给组件提供数据

7.2. prop 与 data的区别

  • data 的数据是自己的,可以随便改
  • prop 的数据是外部的,不能直接改,要遵循 单向数据流

7.3. 单向数据流介绍

  • 父级 prop 的数据更新,会向下流动,影响子组件

这个数据流动是单向的

7.4. 口诀

  • 谁的数据谁负责

 

8. 非父子 (拓展)-event bus 事件总线

8.1. event bus 事件总线的作用

  • 非父子组件之间,进行简易消息传递

复杂场景 → Vuex

8.2. event bus 事件总线的步骤

  • 创建一个都能访问到的事件总线 (空 Vue 实例) → utils/EventBus.js

  • A 组件(接收方),监听 Bus 实例的事件

  • B 组件(发送方),触发 Bus 实例的事件

 

9. 非父子 (拓展)-provide 与 inject

9.1. provide 与 inject 的作用

  • 跨层级共享数据

9.2. provide 与 inject 的步骤

  • 父组件 provide 提供数据

  • 子/孙组件 inject 取值使用

相关文章