欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在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;
    },
}