vue3provide和inject实现跨层级组件间通信祖孙组件
Posted web半晨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3provide和inject实现跨层级组件间通信祖孙组件相关的知识,希望对你有一定的参考价值。
目录
1、爷爷组件(页面)
1.1、html部分
<template>
<h2>provide 与 inject</h2>
<p>当前的颜色: color </p>
<button @click="color = 'red'">红色</button>
<button @click="color = 'yellow'">黄色</button>
<button @click="color = 'green'">绿色</button>
<hr />
<Son />
</template>
1.2、typescript部分
import defineComponent, provide, ref from "vue";
import Son from "./components/Son.vue";
export default defineComponent(
name: "App",
components:
Son,
,
setup()
// 响应式的数据
const color = ref("red");
// 提供数据
provide("color", color);
return
color,
;
,
);
2、父组件
2.1、html部分
<template>
<h3>Son子级组件</h3>
<hr />
<GrandSon />
</template>
2.2、typescript部分
import defineComponent from "vue";
import GrandSon from "./GrandSon.vue";
export default defineComponent(
name: "Son",
components:
GrandSon,
,
);
3、孙子组件
3.1、html部分
<template>
<h3 :style=" color ">GrandSon孙子组件</h3>
</template>
3.2、typescript部分
import defineComponent, inject from "vue";
export default defineComponent(
name: "GrandSon",
setup()
// 注入的操作
const color = inject("color");
return
color,
;
,
);
以上是关于vue3provide和inject实现跨层级组件间通信祖孙组件的主要内容,如果未能解决你的问题,请参考以下文章
Vue Provide / Inject 详细介绍(跨组件通信响应式变化版本变化)
vue之$children和$parent, provide和inject用法以及使用style的方式 显示背景图片