0%

Vue3.x中provide和inject的用法

这一章节我们来讲讲 provideinject 的用法, 首先说一下它们有什么用, provide 的作用是 给后代组件传递数据, inject 的作用是 让后代组件接收provide中的数据, 当我们知道它们有什么作用后, 接下来就可以去看它们的写法了

概念

provide :传递数据

inject:接收数据

然后,我再特别强调,这2个东西主要是让 祖先组件后代组件 传递数据用的。

我们这里说的后代组件,不包括子组件!!!

如果你想给子组件传递数据,请直接使用props就可以了,而不是多此一举的用 provide/inject,虽然说它两也能用,但是这不科学


用法

祖先组件

比如我的祖先组件如下,要传递一个数据 person 给它的后代组件

<template>
<h2>我是祖先组件,我要传递的数据是 : {{name}}-{{sex}}-{{age}}</h2>
<!-- Children 是后代组件 -->
<Children />
</template>
<script>
import { provide } from 'vue';
import Children from './Children';
export default {
components: { Children }
setup() {
// 这是我要传递的数据
let person = {
name: '黄某人',
sex: '男',
age: 18
};
// 使用 provide 来传递person给后代组件
// provide的第一个参数是key,第二个参数是要传递的数据,后代组件需要通过key获取数据
provide('data', person);

return { ...person };
}
}
</script>

后代组件

我们的后代组件这么写

<template>
<h2>我是后代组件,我要接收到的数据是 : {{name}}-{{sex}}-{{age}}</h2>
</template>
<script>
import { inject } from 'vue';
export default {
setup() {
// 使用 inject 来接收provide中的数据
let data = inject('data');

return { ...data };
}
}
</script>

-------------本文结束    感谢阅读-------------
坚持原创技术分享,您的支持将鼓励我继续创作!