VUE3组合API中跨层数据传递 provide和inject

1.provide 顶层组件通过该函数提供数据

2.inject 底层组件通过该函数获得数据、

        示例:

                目的:数据从底层传到顶层

底层:创建一个底层 dowen.vue文件

<script setup>
import {inject} from 'vue';
const vueData = inject('data-key')
const count = inject('count-key')
</script>
<template>
  <div>
    当前文件为底层组件
    <div>
      来至顶层组件的普通数据:{{ vueData }}
    </div>
    <div>
      来至顶层组件的相应数据:{{ count }}
    </div>
  </div>
</template>

中层:创建一个中层content.vue文件

<script setup>
import DOWEN from './dowen.vue'
</script>
<template>
  <div>
      中间层组件
      <DOWEN></DOWEN>
  </div>
</template>

顶层:在App.vue中实现数据的跨层传递

<script setup>
import { provide,ref } from 'vue';
import contentVue from './content.vue';
provide("data-key","顶层组件的数据")
const count = ref(0)
provide("count-key",count)
const setCount = ()=>{
  count.value++
}
</script>
<template>
  顶层组件
  <contentVue></contentVue>
  <button @click="setCount">{{ count }}</button>
</template>

效果:

这种方式特别适用于需要将数据从祖先组件传递到多层嵌套的后代组件时,避免了所谓的 "prop drilling"(逐级传递 props)的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值