爷孙组件数据传递 provide/inject

创建三个组件GrandpaA.vue (爷) => FatherA.vue (父) => SonA (儿)

在每个组件中套用下一个组件

爷组件

复制代码
<template>
  <div class="box">
    GrandpaA 爷爷
    <button @click="change">修改数据</button>
    <FatherA></FatherA>
  </div>
</template>

<script>
import FatherA from "@/components/FatherA.vue";
export default {
  provide() {
    return {
      color: this.color,
      userInfo: this.userInfo,
    };
  },
  data() {
    return {
      color: "pink", //简单数据类型(不是响应性)
      userInfo: {
        name: "张三",  //复杂数据类型(响应性)
        age: 18,
      },
    };
  },
  methods:{
    change(){
      // 点击修改数据 
      // this.color = "red";    //没有响应性
      this.userInfo.name = "李四";    //有响应性
    }
  },
  components: {
    FatherA,
  }
}
</script>

孙祖件

复制代码
<template>
  <div class="box">
    <p>SonA 儿子</p>
    {{ color }}
    {{ userInfo.name }}
    {{ userInfo.age }}
  </div>
</template>

<script>
export default {
  inject: ["color", "userInfo"],
};
</script>

流程图

相关推荐
Mintopia3 分钟前
为什么要有 Neovate Code?
前端
IT_陈寒8 分钟前
SpringBoot 项目启动慢?5 个提速技巧让你的应用快如闪电 ⚡️
前端·人工智能·后端
英俊潇洒美少年9 分钟前
Vue3暂不支持并发渲染
vue.js
IT_陈寒10 分钟前
SpringBoot自动配置的坑,我把头发都快薅没了
前端·人工智能·后端
xkxnq14 分钟前
第六阶段:Vue生态高级整合与优化(第96天) Vue i18n优化:语言包按需加载+缓存当前语言+避免页面刷新失效
前端·vue.js·缓存
进击的雷神16 分钟前
多展会框架复用、Next.js结构统一、北非网络优化、参数差异化配置——阿尔及利亚展爬虫四大技术难关攻克纪实
javascript·网络·爬虫·python
Dxy123931021618 分钟前
Ajax如何发送列表数据
前端·ajax·okhttp
C澒20 分钟前
微前端容器标准化 —— 公共能力篇:通用跨框架通信能力
前端·架构
榴莲omega23 分钟前
第8天:前端面试经典五问
前端·面试·职场和发展·js八股