当前位置: 首页 > news >正文

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可以传递变量,也可以传递函数
当传递函数的时候,后代组件就可以调用该祖先组件的函数,从而,间接的操作祖先组件中的变量
实现,反向通信

http://www.lryc.cn/news/331952.html

相关文章:

  • 微信小程序——小程序和页面生命周期详解
  • android studio中添加module依赖
  • 【.NET全栈】.NET全栈学习路线
  • 代码随想录阅读笔记-二叉树【二叉搜索树中的搜索】
  • 1、初识drf
  • 速盾:cdn高防御服务器租用有哪些好处
  • 【跟小嘉学 Linux 系统架构与开发】四、文件和目录的权限
  • ubuntu18.04图形界面卡死,鼠标键盘失灵, 通过MAC共享网络给Ubuntu解决!
  • ESG认证(ESG=环境、社会和治理 Environmental, Social, and Governance)
  • Cesium Viewer 类学习
  • 第十四届省赛大学B组(C/C++)子串简写
  • 深入浅出 -- 系统架构之微服务架构
  • YoloV8改进策略:下采样改进|自研下采样模块(独家改进)|疯狂涨点|附结构图
  • Python从0到100(十):Python集合介绍及运用
  • 实用技巧:如何取消app的截屏禁用
  • 【氮化镓】GaN SP-HEMT的栅极可靠性
  • Linux基础和进阶用法
  • Linux运维-SHELL编程之正则表达式与流编辑处理器
  • openGauss学习笔记-256 openGauss性能调优-使用Plan Hint进行调优-优化器GUC参数的Hint
  • flex:1的作用是什么?
  • Mysql安装(命令方式安装)
  • Vben Admin实战-系统管理之用户管理-(第12节)
  • Oracle常规操作
  • 「33」如何让你的直播场景增加透视感?
  • Macbook文件清理软件 Mac电脑清理垃圾文件怎么清理
  • 【Java基础】Java基础知识整合
  • 构建集创建、售卖、转让于一体,且基于ERC721 token的NFT平台,从编写智能合约开始(Web3项目四实战之一)
  • 跨境金融区块链服务平台
  • 运筹学经典问题(八):CVRP和VRP-TW
  • AI与技术美术(TechArt)