vue3 跨级传递数据

假设我们我们有3层组件 顶层,中间层,底层

如果我们的顶层想给底层传递数据

常规的我们可以用父传子的方式props,顶层传递给中间层,中间层再传给底层,如果中间有很多层,那不炸杠了吗

所以接下来要用vue3推出的provide和inject函数

我们在顶层用provide函数

html 复制代码
<script setup>
import CenterApp from '@/components/center-app.vue';
import {provide} from 'vue'
import {ref} from 'vue'

const count=ref(0)
provide('car','宝马')
provide('count',count)
provide('addcount',()=>{
  count.value++;
})
</script>

<template>
    <div>
        <h1>我是顶部组件</h1>
        <CenterApp></CenterApp>
    </div>
</template>

底层用inject函数来接收,可以接收常量,响应式变量,函数

html 复制代码
<script setup>
import {inject} from 'vue'
const car=inject('car')
const count=inject('count')
const addcount=inject('addcount')
</script>

<template>
    <div>
        <h3 >我是底部组件-----{{car}}-----{{count}}辆</h3>
        <button @click='addcount'>增加</button>
    </div>
</template>
相关推荐
陈随易13 小时前
Postman 被曝自动往 Claude Code 和 Codex 装插件
前端·后端·程序员
Dream-Y.ocean15 小时前
鸿蒙PC平台宅匠 3D 室内设计适配实战:基于 Electron 壳方案的 Three.js 双渲染引擎与参数化户型编辑器开发
javascript·3d·harmonyos
Csvn16 小时前
性能监控
前端
Highcharts.js16 小时前
Highcharts Gantt使用符号的自定义数据标签开发甘特图示例
javascript·甘特图·highcharts·图表开发·实战代码·响应式图表
Csvn16 小时前
构建工具
前端
FRing0317 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Java小卷17 小时前
JuanForm vs FormCreate!Vue3 表单引擎联动配置 PK!
vue.js·低代码
kyriewen19 小时前
Skills 榜前 10 我全装了:只有 3 个能直接用
前端·javascript·程序员
IT_陈寒19 小时前
当Java的hashCode遇上Lombok,我的缓存被全清了
前端·人工智能·后端
工控丫丫20 小时前
帆软看板中经常使用的公式函数及经常搭的组合
前端·javascript·数据库