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了

相关推荐
骆驼Lara7 分钟前
前端跨域解决方案(1):什么是跨域?
前端·javascript
离岸听风10 分钟前
学生端前端用户操作手册
前端
onebyte8bits12 分钟前
CSS Houdini 解锁前端动画的下一个时代!
前端·javascript·css·html·houdini
yxc_inspire17 分钟前
基于Qt的app开发第十四天
前端·c++·qt·app·面向对象·qss
一_个前端24 分钟前
Konva 获取鼠标在画布中的位置通用方法
前端
一点也不想取名1 小时前
解决 Java 与 JavaScript 之间特殊字符传递问题的终极方案
java·开发语言·javascript
[email protected]1 小时前
Asp.Net Core SignalR导入数据
前端·后端·asp.net·.netcore
小满zs6 小时前
Zustand 第五章(订阅)
前端·react.js
涵信7 小时前
第一节 基础核心概念-TypeScript与JavaScript的核心区别
前端·javascript·typescript
谢尔登7 小时前
【React】常用的状态管理库比对
前端·spring·react.js