Vue3:组件间通信-provide和inject实现祖先组件与后代组件间直接通信

一、情景说明

我们学习了很多的组件间通信
这里在学习一种,祖先组件与后代组件间通信的技术
这里的后代,可以是多层继承关系,子组件,子子组件,子子子组件等等。

  • 在祖先组件中通过provide配置向后代组件提供数据
  • 在后代组件中通过inject配置来声明接收数据

二、案例

1、父组件

  import { ref,reactive,provide } from "vue";
  // 数据
  let money = ref(100)
  let car = reactive({
    brand:'奔驰',
    price:100
  })
  // 用于更新money的方法
  function updateMoney(value:number){
    money.value += value
  }
  // 提供数据
  provide('moneyContext',{money,updateMoney})
  provide('car',car)

2、子子组件
接收到之后,就可以当成自己的变量直接操作了

  import { inject } from 'vue';
  // 注入数据
 let {money,updateMoney} = inject('moneyContext',{money:0,updateMoney:(x:number)=>{}})
  let car = inject('car')

注意,我们可以发现,provide可以传递变量,也可以传递函数
当传递函数的时候,后代组件就可以调用该祖先组件的函数,从而,间接的操作祖先组件中的变量
实现,反向通信

相关推荐

  1. 07.组件通信-provide-inject祖孙通信

    2024-04-05 18:32:06       13 阅读
  2. 3.组件通信-mitt(任意组件通信

    2024-04-05 18:32:06       11 阅读
  3. Vue3组件通信-$refs$parent的使用

    2024-04-05 18:32:06       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-05 18:32:06       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-05 18:32:06       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-05 18:32:06       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-05 18:32:06       18 阅读

热门阅读

  1. 爬取高校专业信息的Python爬虫简介与实践

    2024-04-05 18:32:06       17 阅读
  2. nginx压缩文件gzip配置如何实现

    2024-04-05 18:32:06       14 阅读
  3. GPS工具箱导出数据2

    2024-04-05 18:32:06       13 阅读
  4. Zookeeper脑裂解决方案

    2024-04-05 18:32:06       14 阅读
  5. Zookeeper 中的 CAP

    2024-04-05 18:32:06       12 阅读
  6. tcp服务端,时刻在线

    2024-04-05 18:32:06       15 阅读
  7. ubuntu 安装配置samba服务器完整教程

    2024-04-05 18:32:06       12 阅读