vue依赖注⼊provide和inject。。⼦组件可以使⽤⽗组件⾥⾯定
义的函数。
大数的认识
⼀、使⽤场景:
根⽗组件A有⼀个⽅法getMap,该组件A下的所有⼦组件B,⼦组件C,⼦组件D,或者⼦组件B下的⼦组件E等层层嵌套情况下,在某种情况下,都需要访问⽗组件的getMap⽅法,那么常⽤的⽅法是⼦组件B:this.$Map(),组件E则是:
狰狞的意思
this.$parent.$Map()以此类推;这种情况下,使⽤ $parent 属性⽆法很好的扩展到更深层级的嵌套组件上。
为什么会得抑郁症provide 和 inject这对选项需要⼀起使⽤,以允许⼀个祖先组件向其所有⼦孙后代注⼊⼀个依赖,不论组件层次有多深,并在起上下游关系成⽴的时间⾥始终⽣效肆意青春>我的最爱>南京土特产
⽗组件中把那个通⽤的函数⽅法放在provide⾥⾯.(data methods是同级的)
在⼦组件和孙⼦组件⾥⾯使⽤inject注⼊。然后就可以直接调⽤啦。
inject: ['getMap'],
created () {
console.Map)//调⽤的就是他的祖先⾥⾯的函数
}
如何治疗老花眼
提⽰:provide 和 inject 绑定并不是可响应的。provide 和 inject 主要为⾼阶插件/组件库提供⽤例。并不推荐直接⽤于应⽤程序代码中。想学做蛋糕
然⽽,依赖注⼊还是有负⾯影响的。它将你的应⽤以⽬前的组件组织⽅式耦合了起来,使重构变得更加困难。同时所提供的属性是⾮响应式的。这是出于设计的考虑,因为使⽤它们来创建⼀个中⼼化规模化的数据跟做这件事都是不够好的。如果你想要共享的这个属性是你的应⽤特有的,⽽不是通⽤化的,或者如果你想在祖先组件中更新所提供的数据,那么这意味着你可能需要换⽤⼀个像 这样真正的状态管理⽅案了。