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了

相关推荐
moshuying5 小时前
别让AI焦虑,偷走你本该有的底气
前端·人工智能
GIS之路7 小时前
ArcPy,一个基于 Python 的 GIS 开发库简介
前端
可夫小子8 小时前
OpenClaw基础-为什么会有两个端口
前端
喝拿铁写前端8 小时前
Dify 构建 FE 工作流:前端团队可复用 AI 工作流实战
前端·人工智能
喝咖啡的女孩9 小时前
React 合成事件系统
前端
从文处安9 小时前
「九九八十一难」组合式函数到底有什么用?
前端·vue.js
前端Hardy9 小时前
面试官:JS数组的常用方法有哪些?这篇总结让你面试稳了!
javascript·面试
用户5962585736069 小时前
戴上AI眼镜逛花市——感受不一样的体验
前端
yuki_uix9 小时前
Props、Context、EventBus、状态管理:组件通信方案选择指南
前端·javascript·react.js
老板我改不动了9 小时前
前端面试复习指南【代码演示多多版】之——HTML
前端