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

07.组件间通信-provide-inject(祖孙通信)

组件间通信-provide-inject(祖孙通信)
父组件:

<template><div class="father"><h3>父组件</h3><h4>银子:{{ money }}万元</h4><h4>车子:一辆{{car.brand}}车,价值{{car.price}}万元</h4><Child/></div>
</template>
<script setup lang="ts" name="Father">import Child from './Child.vue'import {ref,reactive,provide} from 'vue'let money = ref(100)let car = reactive({brand:'奔驰',price:100})function updateMoney(value:number){money.value -= value}// 向后代提供数据provide('moneyContext',{money,updateMoney})provide('car',car)
</script>
<style scoped>.father {background-color: rgb(165, 164, 164);padding: 20px;border-radius: 10px;}
</style>

子组件:

<template><div class="child"><h3>我是子组件</h3><GrandChild/></div>
</template>
<script setup lang="ts" name="Child">import GrandChild from './GrandChild.vue'
</script>
<style scoped>.child {margin-top: 20px;background-color: skyblue;padding: 20px;border-radius: 10px;box-shadow: 0 0 10px black;}
</style>

孙组件:

<template><div class="grand-child"><h3>我是孙组件</h3><h4>银子:{{ money }}</h4><h4>车子:一辆{{car.brand}}车,价值{{car.price}}万元</h4><button @click="updateMoney(6)">花爷爷的钱</button></div>
</template>
<script setup lang="ts" name="GrandChild">import { inject } from "vue";let {money,updateMoney} = inject('moneyContext',{money:0,updateMoney:(param:number)=>{}})let car = inject('car',{brand:'未知',price:0})
</script>
<style scoped>.grand-child{background-color: orange;padding: 20px;border-radius: 10px;box-shadow: 0 0 10px black;}
</style>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 记一次极其坑爹的 process.waitFor() 卡死问题
  • 【RAG入门教程04】Langchian的文档切分
  • 【代码随想录】【算法训练营】【第32天】 [122]买卖股票的最佳时机II [376]摆动序列 [53]最大子序和
  • string类的模拟实现的一些改进
  • R语言探索与分析18-基于时间序列的汇率预测
  • Spring Cloud Gateway CORS 跨域方案
  • 引入Springcloud--Sleuth-链路追踪中MDC是如何获取到traceid和何时放入traceid的
  • 用动态IP采集数据总是掉线是为什么?该怎么解决?
  • R语言探索与分析19-CPI的分析和研究
  • C++迈向精通:STL的Deque复现
  • 前端面试项目细节重难点(已工作|做分享)想(八)
  • Ubuntu22.04之解决:terminal使用alt+1/alt+2/alt+3失效问题(二百三十八)
  • 自然语言处理(NLP)—— 自动摘要
  • 【手推公式】如何求SDE的解(附录B)
  • 爬虫——有道云翻译
  • 【Leetcode】101. 对称二叉树
  • 11111111
  • Apache Zeppelin在Apache Trafodion上的可视化
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • isset在php5.6-和php7.0+的一些差异
  • JavaScript HTML DOM
  • javascript 总结(常用工具类的封装)
  • Laravel核心解读--Facades
  • Linux gpio口使用方法
  • 从tcpdump抓包看TCP/IP协议
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 简单数学运算程序(不定期更新)
  • 利用DataURL技术在网页上显示图片
  • 聊聊flink的TableFactory
  • 区块链共识机制优缺点对比都是什么
  • 数据可视化之 Sankey 桑基图的实现
  • 无服务器化是企业 IT 架构的未来吗?
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #etcd#安装时出错
  • #pragma once
  • #我与Java虚拟机的故事#连载02:“小蓝”陪伴的日日夜夜
  • #我与Java虚拟机的故事#连载13:有这本书就够了
  • $.ajax()
  • (6)设计一个TimeMap
  • (C++哈希表01)
  • (done) 声音信号处理基础知识(2) (重点知识:pitch)(Sound Waveforms)
  • (LeetCode C++)盛最多水的容器
  • (二)JAVA使用POI操作excel
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (算法)区间调度问题
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (一)u-boot-nand.bin的下载
  • (转)iOS字体
  • (转)可以带来幸福的一本书
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET6实现破解Modbus poll点表配置文件
  • .NET上SQLite的连接