Vue3使用provide和inject实现孙组件给爷组件传递数据

前言:

最近在研究gitHub中的一个项目并将与自己之前完成的项目进行结合,其中有一个功能是需要在孙组件将数据传递给爷组件,笔者研究后将使用总结如下:

具体步骤:

1.爷组件先定义一个空的函数传递给孙子

2.孙组件使用inject接收

3.孙组件在函数中调用爷爷传递过来的函数,并在()中传递要传递的数据

4.调用这个函数(也可以使用点击事件等方式触发)

5.爷组件在当初定义的空函数中获得孙组件传递过来的值tValue

爷组件:

TypeScript 复制代码
<script lang="ts" setup>
import { ref, onMounted, provide } from "vue"
const tValue = ref("")
//1.爷组件先定义一个空的函数传递给孙子
provide("passValue", passValue)
//5.爷组件在当初定义的空函数中获得孙组件传递过来的值tValue
const passValue = (codeValue: string) => {
  tValue.value = value
}
console.log(tValue.value)
</script>

孙组件:

TypeScript 复制代码
<script lang="ts" setup>
import { inject } from "vue"
const value = 2000;
//2.孙组件使用inject接收
const passValue = inject("passValue")
//3.孙组件在函数中调用爷爷传递过来的函数,并在()中传递要传递的数据
const sendValue = () => {
  passValue(value)
}
//4.调用这个函数(也可以使用点击事件等方式触发)
sendValue()
</script>
相关推荐
AI产品实战42 分钟前
95coder一句话生成MOM系统,AI用时6分50秒,Token只消耗25107
vue.js·spring boot·ai编程·ruoyi
humcomm43 分钟前
FinClip vs React Native:两大跨平台方案的深度对比
javascript·react native·react.js
在繁华处1 小时前
从零搭建轻灵(四):工具系统与 Pipeline
前端·chrome
小则又沐风a1 小时前
进一步了解进程---第四章 进程管理
java·服务器·前端
放下华子我只抽RuiKe51 小时前
FastAPI 全栈后端(一):为什么选择 FastAPI
前端·javascript·深度学习·react.js·机器学习·前端框架·fastapi
ZC跨境爬虫1 小时前
跟着 MDN 学CSS day_11:(深入理解CSS值与单位的完整体系)
前端·css·ui·html·tensorflow
青云计划1 小时前
SSE流式响应:从Reactor Flux到生产级AI聊天的工程实践——5分钟超时、线程隔离、背压处理全解析
前端·人工智能·firefox
A南方故人1 小时前
将容器内的元素变为可拖拽
开发语言·javascript·ecmascript
身如柳絮随风扬1 小时前
Docker 化部署 Spring Boot + Vue 全栈应用:从打包到容器化上线
vue.js·spring boot·docker