vue3爷孙组件通信——provide和inject

父组件中提供数据,并在子组件中注入这些数据,从而实现了组件之间的数据传递。可用于兄弟组件通信,爷孙组件通信,父子通信。


provide( '注入名', 注入值" ) 和 inject('注入名')

第一代组件:

  <template>
	 <div >我是第一代组件</div>
	 <Two /> 
  </template>
  <script setup lang='ts'>
     import Two from "./components/Two";  // 引入第二代组件
	 import { provide, ref} from 'vue';
	 const obj = ref<any>({name: 'coderkey',age:18})
	 provide('userInfo',obj )
  </script>

第二代组件:

  <template>
	 <div >我是第二代组件</div>
	 <Three /> 
  </template>
  <script setup lang='ts'>
     import Three from "./components/Three ";  // 引入第三代组件
  </script>

第三代组件:

  <template>
	 <div >我是第三代组件</div>
  </template>
  <script setup lang='ts'>
	 import { inject, ref,onMounted } from 'vue';
	 const obj = ref<any>({name: 'coderkey',age:18})
	 onMounted(() =>{
     	const msg = inject('userInfo')
		console.log(msg.value)  // {name: 'coderkey',age:18}  // 响应式数据
     })
  </script>

这样子第一代组件的数据就可以传递给第三代组件使用了,数据还是响应式的。


相关推荐
青灯文案1几秒前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http
m0_748254885 分钟前
DataX3.0+DataX-Web部署分布式可视化ETL系统
前端·分布式·etl
ZJ_.17 分钟前
WPSJS:让 WPS 办公与 JavaScript 完美联动
开发语言·前端·javascript·vscode·ecmascript·wps
GIS开发特训营21 分钟前
Vue零基础教程|从前端框架到GIS开发系列课程(七)响应式系统介绍
前端·vue.js·前端框架·gis开发·webgis·三维gis
Cachel wood1 小时前
python round四舍五入和decimal库精确四舍五入
java·linux·前端·数据库·vue.js·python·前端框架
学代码的小前端1 小时前
0基础学前端-----CSS DAY9
前端·css
joan_851 小时前
layui表格templet图片渲染--模板字符串和字符串拼接
前端·javascript·layui
还是大剑师兰特1 小时前
什么是尾调用,使用尾调用有什么好处?
javascript·大剑师·尾调用
m0_748236111 小时前
Calcite Web 项目常见问题解决方案
开发语言·前端·rust
Watermelo6172 小时前
详解js柯里化原理及用法,探究柯里化在Redux Selector 的场景模拟、构建复杂的数据流管道、优化深度嵌套函数中的精妙应用
开发语言·前端·javascript·算法·数据挖掘·数据分析·ecmascript