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了

相关推荐
乌索普-5 分钟前
基于vue2的简易购物车
开发语言·前端·javascript
走粥6 分钟前
使用indexOf查找对象结合Pinia持久化引发的问题
开发语言·前端·javascript
北寻北爱16 分钟前
前端加密解密- base64、md5、sha256、AES
前端·vue.js
柒.梧.17 分钟前
Redis通用命令+五大核心数据结构
前端·bootstrap·html
Refly28 分钟前
【微信接入 OpenClaw 龙虾🦞】10分钟手把手教程完成接入,Claude 模型无限使用
前端·微信·github
恋猫de小郭34 分钟前
为什么中转渠道的顶级模型会不好用?这是一个技术问题
前端·人工智能·ai编程
发现一只大呆瓜39 分钟前
React-深度拆解 React路由:从实战进阶到底层原理
前端·react.js·面试
不甜情歌40 分钟前
搞懂 Promise:告别回调嵌套,再也不怕异步代码乱成麻
前端·javascript
野草arthas43 分钟前
什么是视觉层次?为什么需要它?
前端
发现一只大呆瓜1 小时前
React-手把手带你实现 Keep-Alive 效果
前端·react.js·面试