在vue中使用 provide 和 inject
程序员文章站
2022-07-04 21:34:32
...
提示:provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的属性还是可响应的。
使用场景:在主页面中 引入较深层级的业务组件,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。
export default {
name: 'XXX',
provide() {
return {
ctx: this
};
},
data() {
return {
name:'abc'
}
},
components: {
组件1,
组件2,
组件3,
组件4
},
}
把主页面的this,注入到 ctx对象上。
在组件中引入:
export default {
name: '组件1',
inject: ['ctx'],
mounted(){
const { name } = this.ctx.name;
},
}