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了

相关推荐
Lufeidata6 小时前
go语言学习记录-入门阶段
前端·学习·golang
英俊潇洒美少年6 小时前
前端 跨域解决方案
前端
程序员小李白6 小时前
vue题目
前端·javascript·vue.js
okra-6 小时前
什么是接口?
服务器·前端·网络
humors2217 小时前
Deepseek工具:H5+Vue 项目转微信小程序报告生成工具
前端·vue.js·微信小程序·h5·工具·报告
方安乐7 小时前
ESLint代码规范(二)
前端·javascript·代码规范
zzginfo7 小时前
var、let、const、无申明 四种变量在赋值前,使用的情况
开发语言·前端·javascript
贺小涛7 小时前
Vue介绍
前端·javascript·vue.js
cch89187 小时前
React Hooks的支持
前端·javascript·react.js