简介
这对 选项 需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。
注
provide 和 inject 绑定并不是可响应的。
然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。
父组件
data(){
return{
num:1,
flag:1,
obj: {
name: 'eavan'
},
obj1: {
name: {
aa:'test1'
},
}
}
},
provide() {
return{
flag:this.flag,//不可以做到响应式
num:() => this.num,//配合计算属性实现响应式,或者直接调用num()
obj: this.obj, //是对象,能实现响应式
obj1: this.obj1 //是对象,能实现响应式(深层也可以)
}
},
子组件
inject: ['num','obj','flag','obj1'],
computed: {
numChild() {
return this.num()
},
},
现在注入还可以标注 来源,默认值配合对象来写
补充
inject: {
foo: {
from: 'bar',
default: 'foo'
}
}