13.(vue3.x+vite)组件间通信方式之provide与inject

本文介绍了在Vue3.x中,如何利用Provide/Inject进行组件间的通信,特别是解决父组件向深层子组件传递数据的问题。通过提供和注入,父组件可以直接为任意层级的子组件提供数据,且子组件可以修改这些数据,不受单向数据流约束。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前端技术社区总目录(订阅之前请先查看该博客)

示例效果

在这里插入图片描述
注:用于父组件传给子组件,孙组件。兄弟组件不能用,pinia的文件也不能调用。

依赖注入Provide / Inject

在父子组件传递数据时,通常使用的是 props 和 emit,父传子时,使用的是 props,如果是父组件传孙组件时,就需要先传给子组件,子组件再传给孙组件,如果多个子组件或多个孙组件使用时,就需要传很多次,会很麻烦。
像这种情况,可以使用 provide 和 inject 解决这种问题,不论组件嵌套多深,父组件都可以为所有子组件或孙组件提供数据,父组件使用 provide 提供数据,子组件或孙组件 inject 注入数据。

props子组件是不可以修改祖先组件的数据,而Provide子组件不受单向数据流的限制,是可以修改祖先组件的数据。

父组件代码


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地图之家家长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值