vue3 父组件给子组件传值 provide & inject
介绍
provide()
和inject()
可以实现嵌套组件之间的数据传递。- 这两个函数只能在
setup()
函数中使用。 - 父级组件中使用
provide()
函数向下传递数据。 - 子级组件中使用
inject()
获取上层传递过来的数据。 - 不限层级
下面来看一个简单的例子。
父组件
<template>
<div>
<provideAndInject />
</div>
</template>
<script>
import { provide } from "@vue/composition-api"; // 父组件引入 provide
import provideAndInject from "./components/provideAndInject"; // 引入子组件
export default {
name: "app",
components: {
provideAndInject
},
setup() {
// provide('数据名称', 要传递的数据)
provide("customVal", "我是父组件向子组件传递的值");
}
};
</script>
子组件
<template>
<div>
<h3>{{ customVal }}</h3>
</div>
</template>
<script>
// 子组件导入 inject
import { inject } from "@vue/composition-api";
export default {
setup() {
//调用 inject 函数,通过指定的数据名称,获取到父级共享的数据
const customVal = inject("customVal");
return {
customVal
};
}
};
</script>
补充
父组件可以通过
ref
创建响应式数据通过provide
共享给子组件
本文作者:guangzan
本文链接:https://www.cnblogs.com/guangzan/p/11830554.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步