Vue3-provide和inject

作用和场景:顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信

跨层传递普通数据:

1.顶层组件通过provide函数提供数据

2.底层组件通过inject函数获取数据

既可以传递普通数据,也可以使用ref传递响应式数据(顶层组件修改数据后可以响应过去)

但是底层组件不能修改顶层组件传递过来的数据,所以我们可以在顶层组件中跨层传递函数,给子孙后代传递可以修改数据的方法

顶层组件

复制代码
<script setup>
    import {provide,ref} from 'vue'
    const count=ref(100)
    provide('changeCount',(newCount)=>{
        count.value=newCount
    })
</script>

底层组件

复制代码
<script setup>
    import {inject} from 'vue'
    const changeCount=inject(changeCount)
    changeCount(1000)//可以放在点击事件上
</script>

这样就可以把父组件里的count改为1000了

相关推荐
ZPC82107 小时前
如何创建一个单例类 (Singleton)
开发语言·前端·人工智能
紫_龙7 小时前
最新版vue3+TypeScript开发入门到实战教程之重要详解readonly/shallowReadOnly
前端·javascript·typescript
roamingcode9 小时前
前端 AI Agent 多智能体协作架构:从对抗式排查到工作流解耦
前端·人工智能·架构·agent·team
蓝莓味的口香糖10 小时前
【vue】初始化 Vue 项目
前端·javascript·vue.js
aikongmeng10 小时前
【Ai】Claude Code 初始化引导
javascript
光影少年10 小时前
数组去重方法
开发语言·前端·javascript
我命由我1234510 小时前
浏览器的 JS 模块化支持观察记录
开发语言·前端·javascript·css·html·ecmascript·html5
weixin_4434785111 小时前
Flutter第三方常用组件包之路由管理
前端·javascript·flutter
武藤一雄11 小时前
C# 异步回调与等待机制
前端·microsoft·设计模式·微软·c#·.netcore
啥都不懂的小小白11 小时前
前端CSS入门详解
前端·css