有时需要描述二者,我自定义称之为provide(供给),inject(注入)
含义:provide可以理解为父组件击穿层级给子组件的一个对象
inject则接受接受该对象,当然可以只接受该对象的某个属性
按理说是可以注入属性的,但我不知道是否可在子组件改变注入值,就不举例 注入值了,我习惯于注入一个绑定函数。
具体代码:
父组件:
在父组件中注入两个绑定函数
provide() {
return {
onBarChange: this.onBarChange.bind(this)
}
},
onBarChange(ref) {
this.focusBarRef = ref
// dosomething
},
子组件 :
这在子组件跨层级调用父组件方法而不用写复杂的$emit
inject: ['onBarChange'],
methods: {
// 点击事件
onClick() {
if (this.onBarChange) {
this.onBarChange(this.focusBar)
}
}
}