provide/inject响应式实现

本文深入探讨Vue框架中provide-inject特性,用于实现祖先组件向子孙组件的依赖注入,即使在深层组件中依然有效。尽管provide-inject的绑定不是响应式的,但可以通过传递可监听的对象实现部分响应性。示例中展示了如何注入数据,包括基本类型和对象,并且可以设置默认值。此外,还介绍了如何通过`from`和`default`指定注入来源和默认值。
摘要由CSDN通过智能技术生成

简介

这对 选项 需要一起使用,以允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在其上下游关系成立的时间里始终生效。

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'
    }
  }
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值