vue2中provide和inject的使用
时间: 2024-09-09 22:16:35 浏览: 64
vue中的provide/inject的学习使用
5星 · 资源好评率100%
在Vue 2中,`provide` 和 `inject` 是一对选项,允许一个祖先组件向其所有子孙后代注入一个依赖,而不论组件层次有多深,并在起上下游关系成立的时间里始终生效。这个特性可以用于封装插件或组件库。
- `provide` 选项应该是一个对象或者是一个返回对象的函数。在对象中你可以提供多个属性,这些属性在组件树中的后代组件里可以通过 `inject` 选项来接收。
- `inject` 选项是一个数组,包含字符串或对象。字符串作为键名,对应提供方 `provide` 选项中的属性名。
这里是一个简单的例子:
```javascript
// 祖先组件
export default {
data() {
return {
message: 'Hello!'
};
},
provide() {
// 使用对象形式提供 'message'
return {
user: this.message
};
}
};
// 后代组件
export default {
inject: ['user'],
created() {
console.log(this.user); // 将会输出: 'Hello!'
}
};
```
在这个例子中,祖先组件提供了一个名为 `user` 的依赖,后代组件通过声明 `inject: ['user']` 来注入这个依赖。
阅读全文