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了

相关推荐
刘宇琪几秒前
如何在大型前端项目中有效管理 TypeScript 的类型复用与共享?
前端
阿奇__1 分钟前
前端模块化指南:CJS 与 ESM 的区别与混用
前端
北寻北爱4 分钟前
面试篇-webpack+vite
前端
Kinghiee5 分钟前
使用webpack构建vue3 ssr
前端·webpack·node.js·vue3ssr
wuhen_n8 分钟前
回溯算法入门 - LeetCode经典回溯算法题
前端·javascript·算法
xcs1940515 分钟前
前端 vue this.$nextTick(() => {
前端·javascript·vue.js
广州华水科技17 分钟前
如何在基础设施安全中有效实现GNSS位移监测的应用?
前端
大漠_w3cpluscom20 分钟前
前端怎么提升自己的CSS编写能力?
前端
我是若尘22 分钟前
大数据量渲染优化:分批渲染技术详解
前端
ruanCat22 分钟前
pnpm 踩坑实录:用 public-hoist-pattern 拯救被严格隔离坑掉的依赖
前端·npm·node.js