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>

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


相关推荐
lifewange11 小时前
UI自动化页面元素定位有几种方式
前端·ui·自动化
牛奶11 小时前
2026 春涧·前端走向全栈
前端·人工智能·全栈
Piper蛋窝11 小时前
AI 有你想不到,也它有做不到 | 2025 年深度使用 Cursor/Trae/CodeX 所得十条经验
前端·后端·代码规范
LYFlied11 小时前
WebAssembly为何能实现极致性能:从设计原理到执行优势
前端·wasm·跨端
韩立学长11 小时前
【开题答辩实录分享】以《在线作业标准流程指导系统的设计与实现》为例进行选题答辩实录分享
java·javascript
百万蹄蹄向前冲12 小时前
2026云服务器从零 搭建与运维 指南
服务器·javascript·后端
释怀不想释怀12 小时前
vue布局,动态路由
前端·html
桜吹雪12 小时前
Vue 基础:状态管理入门
前端·vue.js
JavaGuide13 小时前
利用元旦假期,我开源了一个大模型智能面试平台+知识库!
前端·后端
yuanyxh13 小时前
程序设计
前端·设计