Vue3 组件向下通信 祖孙组件的通信 provide与inject

介绍

当父子间通信可以使用props,祖孙使用provide(传递)或inject(接收),
这时不管组件套的多深都可以向下传递。
在这里插入图片描述

例子

现在有一个需求,把App.vue的数据传递到MusciPlay.vue里。
在这里插入图片描述

App.vue

爷爷

<template>
  <div>
    <MusicState></MusicState>
  </div>
</template>
<script setup>
import {provide, reactive} from 'vue'
import MusicState from "./components/MusicState.vue";
const userMessage =reactive({
  id:123,
  age:18,
  name:'生产队的驴'
})
  provide('userMessage', userMessage)
</script>

MusicState.vue

父亲

<template>
  <MusicPlay></MusicPlay>
</template>
<script setup>
import MusicPlay from "./MusicPlay.vue";
</script>

MusicPlay.vue

儿子 接收值

<template>
  {{userMessage}}
</template>
<script setup>
import {inject} from "vue";
const userMessage = inject('userMessage')
</script>

效果

正常接收到了,当然在孙组件了正常修改该值也都是响应式的。
在这里插入图片描述
协议书修改

  <button @click="userMessage.name=''">修改</button>

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 05:42:05       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 05:42:05       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 05:42:05       45 阅读
  4. Python语言-面向对象

    2024-07-18 05:42:05       55 阅读

热门阅读

  1. 数据库管理-第221期 Oracle的高可用-04(20240717)

    2024-07-18 05:42:05       18 阅读
  2. 构建自动化:在Gradle中配置项目变量

    2024-07-18 05:42:05       19 阅读
  3. PL/SQL oracle上多表关联的一些记录

    2024-07-18 05:42:05       21 阅读
  4. vb6读取mysql,用odbc mysql 5.3版本驱动

    2024-07-18 05:42:05       18 阅读
  5. 在Spring Boot 中使用Kafka

    2024-07-18 05:42:05       19 阅读
  6. 响应式编程:Project Reactor与WebFlux

    2024-07-18 05:42:05       17 阅读
  7. Django+vue自动化测试平台(28)-- ADB获取设备信息

    2024-07-18 05:42:05       19 阅读
  8. 2024牛客暑期多校训练营1 I.Mirror Maze(题解)

    2024-07-18 05:42:05       20 阅读
  9. 浅谈Git

    浅谈Git

    2024-07-18 05:42:05      19 阅读
  10. 力扣649.Dota2参议院

    2024-07-18 05:42:05       23 阅读